All Products
Search
Document Center

Container Service for Kubernetes:Backup dan pulihkan aplikasi dengan Terraform

Last Updated:Aug 28, 2026

Kelola penyimpanan cadangan (backup vault), jadwal, dan pemulihan lintas kluster di ACK melalui resource kustom Terraform.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Catatan penggunaan

  • Jangan jalankan kubectl delete untuk menghapus tugas backup atau pemulihan — sumber daya cloud mungkin tidak sepenuhnya dibersihkan. Lihat Langkah 5: Hapus sumber daya.

  • Perbarui migrate-controller secara berkala. Lihat Kelola komponen.

  • Jangan hapus parameter dari contoh kode di bawah ini. Parameter yang hilang dapat mencegah pemulihan backup.

Langkah 1: Hubungkan ke kluster

Gunakan Terraform Kubernetes provider untuk terhubung ke kluster Anda melalui file KubeConfig.

  1. Buat direktori kerja Terraform.

  2. Di dalam direktori tersebut, buat file bernama csdr.tf:

    provider "kubernetes" {
      config_path = "~/.kube/config"
    }
  3. Inisialisasi Terraform:

    terraform init

    Expand to view the output

    Initializing the backend...
    
    Initializing provider plugins...
    - Reusing previous version of hashicorp/alicloud from the dependency lock file
    - Reusing previous version of hashicorp/kubernetes from the dependency lock file
    - Using previously-installed hashicorp/alicloud v1.223.1
    - Using previously-installed hashicorp/kubernetes v2.30.0
    
    ╷
    │ Warning: Additional provider information from registry
    │
    │ The remote registry returned warnings for registry.terraform.io/hashicorp/alicloud:
    │ - For users on Terraform 0.13 or greater, this provider has moved to aliyun/alicloud. Please
    │ update your source in required_providers.
    ╵
    
    Terraform has been successfully initialized!

Langkah 2: Buat penyimpanan cadangan (backup vault)

Penyimpanan cadangan (BackupLocation CR) menentukan bucket OSS dan metode akses untuk backup.

  1. Tambahkan berikut ini ke csdr.tf, ganti placeholder-nya:

    Parameter Wajib Deskripsi
    name Ya Nama penyimpanan cadangan. Harus sesuai dengan konvensi penamaan Kubernetes.
    network Ya Mode jaringan untuk mengakses bucket OSS. internal: semua kluster harus berada di wilayah yang sama dengan bucket. public: tidak ada batasan wilayah.
    region Ya Wilayah tempat bucket OSS berada.
    bucket Ya Nama bucket OSS. Harus diawali dengan cnfs-oss-.
    prefix Tidak Subdirektori dalam bucket OSS untuk penyimpanan backup.
    provider Ya Penyedia cloud. Tetapkan ke alibabacloud.
    resource "kubernetes_manifest" "backuplocation-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "BackupLocation"
        metadata = {
          name      = "<your-backup-vault-name>"   # Harus sesuai dengan konvensi penamaan Kubernetes
          namespace = "csdr"
        }
    
        spec = {
          backupSyncPeriod = "0s"
          config = {
            network = "internal"    # "internal": bucket dan kluster harus berada di wilayah yang sama
                                    # "public": tidak ada batasan wilayah
            region  = "cn-beijing"  # Wilayah tempat bucket OSS berada
          }
          objectStorage = {
            bucket = "<cnfs-oss-your-bucket-name>"  # Harus diawali dengan cnfs-oss-
            prefix = "<sub-directory>"              # Opsional: simpan backup di subdirektori ini
          }
          provider = "alibabacloud"
        }
      }
    
      # Tunggu hingga penyimpanan cadangan siap sebelum melanjutkan
      wait {
        fields = {
          "status.phase" = "Available"
        }
      }
    
      timeouts {
        create = "10m"
      }
    }
  2. Pratinjau perubahan:

    terraform plan
  3. Buat penyimpanan cadangan:

    terraform apply

    Expand to view the response

    kubernetes_manifest.backuplocation-demo: Creating...
    kubernetes_manifest.backuplocation-demo: Creation complete after 1s
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Langkah 3: Buat tugas backup

ACK mendukung dua mode backup: backup instan (dijalankan sekali sesuai permintaan) dan backup terjadwal (dijalankan berdasarkan jadwal cron).

Buat tugas backup instan

  1. Tambahkan berikut ini ke csdr.tf, ganti placeholder-nya:

    Jika kluster ACK Anda menggunakan Velero, bergabunglah dengan grup DingTalk 35532895 untuk dukungan teknis.
    Parameter Wajib Deskripsi
    csdr.alibabacloud.com/backuplocations Ya Anotasi penyimpanan cadangan. Harus persis sesuai dengan konfigurasi BackupLocation.
    name Ya Nama tugas backup instan.
    includedNamespaces Ya Namespace yang akan dibackup.
    includedResources Tidak Jenis resource yang disertakan. Tentukan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua jenis resource akan dibackup.
    excludedResources Tidak Jenis resource yang dikecualikan. Lihat includedResources.
    matchLabels Tidak Label dari resource yang akan dibackup.
    includeClusterResources Tidak Mengontrol resource berskala kluster. true: semua resource berskala kluster. false atau tidak diatur: hanya yang dirujuk oleh namespace yang ditentukan. Nilai default di Konsol ACK: false.
    defaultPvBackup Tidak true: backup aplikasi dan volume. false: backup hanya aplikasi.
    storageLocation Ya Nama penyimpanan cadangan (BackupLocation).
    ttl Ya Periode validitas backup. Format: 720h0m0s. Rentang valid: 24h0m0s hingga 1572864h0m0s. Backup yang kedaluwarsa tidak dapat dipulihkan.
    resource "kubernetes_manifest" "applicationbackup-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "ApplicationBackup"
        metadata = {
          name      = "<your-backup-task-name>"
          namespace = "csdr"
          annotations = {
            # Harus persis sesuai dengan konfigurasi penyimpanan cadangan
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<your-backup-vault-name>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-your-bucket-name>\",\"prefix\":\"<sub-directory>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          includedNamespaces = ["default", "default1"]  # Namespace yang akan dibackup
    
          # Tentukan hanya salah satu dari includedResources atau excludedResources.
          # Jika keduanya kosong, semua jenis resource akan dibackup.
          includedResources = ["statefulset"]
          excludedResources = ["excludedResources"]
    
          labelSelector = {
            matchLabels = {
              "app" = "mysql-sts"  # Opsional: backup hanya resource dengan label ini
            }
          }
    
          pvBackup = {
            defaultPvBackup = "false"  # "true": backup aplikasi dan volume; "false": hanya aplikasi
          }
    
          storageLocation = "<your-backup-vault-name>"  # Harus sesuai dengan nama BackupLocation
    
          ttl = "720h0m0s"  # Periode validitas backup. Format: 720h0m0s
                            # Rentang valid: 24h0m0s hingga 1572864h0m0s
                            # Backup yang kedaluwarsa tidak dapat dipulihkan
    
          # includeClusterResources mengontrol apakah resource berskala kluster disertakan:
          # "true"  — sertakan semua resource berskala kluster (StorageClasses, CRDs, webhook, dll.)
          # "false" — sertakan hanya resource berskala kluster yang dirujuk oleh namespace yang ditentukan
          #           (misalnya, jika pod menggunakan service account dengan cluster role,
          #            cluster role tersebut secara otomatis disertakan)
          # Tidak diatur — perilaku sama seperti "false" saat menggunakan filter namespace
          includeClusterResources = "false"
        }
      }
    
      # Hapus komentar untuk menunggu hingga backup selesai (disarankan untuk alur kerja skrip).
      # Durasi backup tergantung pada jumlah aplikasi dan ukuran data volume.
      #wait {
      #  fields = {
      #    "status.phase" = "Completed"
      #  }
      #}
      #timeouts {
      #  create = "60m"
      #}
    }
  2. Pratinjau perubahan:

    terraform plan
  3. Buat tugas backup instan:

    terraform apply

    Expand to view the output

    kubernetes_manifest.applicationbackup-demo: Creating...
    kubernetes_manifest.applicationbackup-demo: Creation complete after 1s
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Buat tugas backup terjadwal

  1. Tambahkan berikut ini ke csdr.tf, ganti placeholder-nya:

    Expand to view the configuration file

    resource "kubernetes_manifest" "backupschedule-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "BackupSchedule"
        metadata = {
          name      = "<your-schedule-name>"
          namespace = "csdr"
          annotations = {
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<your-backup-vault-name>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-your-bucket-name>\",\"prefix\":\"<sub-directory>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          # Ekspresi cron untuk jadwal backup (zona waktu server).
          # Format:  menit  jam  hari-dalam-bulan  bulan  hari-dalam-minggu
          # Contoh: "1 4 * * *" dijalankan setiap hari pukul 04:01.
          schedule = "1 4 * * *"
    
          template = {
            includedNamespaces = ["default", "default1"]
            includedResources  = ["statefulset"]
            excludedResources  = ["excludedResources"]
            labelSelector = {
              matchLabels = {
                "app" = "mysql-sts"
              }
            }
            pvBackup = {
              defaultPvBackup = "false"  # Wajib untuk BackupSchedule
            }
            storageLocation         = "<your-backup-vault-name>"
            ttl                     = "720h0m0s"
            includeClusterResources = "false"
          }
        }
      }
    
      wait {
        fields = {
          "status.phase" = "Enabled"
        }
      }
    
      timeouts {
        create = "10m"
      }
    }
    Parameter Wajib Deskripsi
    csdr.alibabacloud.com/backuplocations Ya Anotasi penyimpanan cadangan. Harus persis sesuai dengan konfigurasi BackupLocation.
    name Ya Nama tugas backup terjadwal.
    schedule Ya Frekuensi backup dalam bentuk ekspresi cron. Format: menit jam hari-dalam-bulan bulan hari-dalam-minggu. Contoh: "1 4 * * *" dijalankan setiap hari pukul 04:01.
    includedNamespaces Ya Namespace yang akan dibackup.
    includedResources Tidak Jenis resource yang disertakan. Tentukan hanya salah satu dari includedResources atau excludedResources. Jika keduanya kosong, semua jenis resource akan dibackup.
    excludedResources Tidak Jenis resource yang dikecualikan. Lihat catatan untuk includedResources.
    matchLabels Tidak Label dari resource yang akan dibackup.
    includeClusterResources Tidak Mengontrol resource berskala kluster. true: semua resource berskala kluster. false atau tidak diatur: hanya yang dirujuk oleh namespace yang ditentukan.
    defaultPvBackup Ya true: backup aplikasi dan volume. false: backup hanya aplikasi.
    storageLocation Ya Nama penyimpanan cadangan (BackupLocation).
    ttl Ya Periode validitas backup. Format: 720h0m0s. Rentang valid: 24h0m0s hingga 1572864h0m0s.
  2. Pratinjau perubahan:

    terraform plan
  3. Buat tugas backup terjadwal:

    terraform apply

    Expand to view the output

    kubernetes_manifest.backupschedule-demo: Creating...
    kubernetes_manifest.backupschedule-demo: Creation complete after 1s
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Kelola tugas backup terjadwal

Temukan backup yang dibuat oleh jadwal

Daftar backup dari jadwal tertentu:

data "kubernetes_resources" "list-applicationbackup" {
  api_version    = "csdr.alibabacloud.com/v1beta1"
  kind           = "ApplicationBackup"
  namespace      = "csdr"
  label_selector = "csdr/schedule-name=<your-schedule-name>"
}

output "applicationbackup-name" {
  value = data.kubernetes_resources.list-applicationbackup.objects
}

Ubah tugas backup terjadwal

Untuk mengubah parameter seperti frekuensi jadwal:

  1. Tetapkan spec.paused ke "true" untuk menjeda jadwal, lalu perbarui parameter. Contoh:

    Expand to view the configuration file

    resource "kubernetes_manifest" "backupschedule-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "BackupSchedule"
        metadata = {
          name      = "<your-schedule-name>"
          namespace = "csdr"
          annotations = {
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<your-backup-vault-name>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-your-bucket-name>\",\"prefix\":\"<sub-directory>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          paused   = "true"        # Jeda jadwal sebelum mengubah
          schedule = "0 5 * * *"   # Frekuensi backup yang diperbarui
          template = {
            includedNamespaces      = ["default", "default1"]
            includedResources       = ["statefulset"]
            excludedResources       = ["excludedResources"]
            labelSelector = {
              matchLabels = {
                "app" = "mysql-sts"
              }
            }
            pvBackup = {
              defaultPvBackup = "false"
            }
            storageLocation         = "<your-backup-vault-name>"
            ttl                     = "720h0m0s"
            includeClusterResources = "false"
          }
        }
      }
      wait {
        fields = {
          "status.phase" = "Paused"  # Pastikan jadwal telah dijeda sebelum menerapkan perubahan lebih lanjut
        }
      }
      timeouts {
        create = "10m"
      }
    }
  2. Pratinjau perubahan:

    terraform plan
  3. Terapkan konfigurasi yang diperbarui:

    terraform apply

    Output yang diharapkan:

    kubernetes_manifest.backupschedule-demo: Modifying...
    kubernetes_manifest.backupschedule-demo: Modifications complete after 1s
    
    Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Proteksi data (PvBackup)

Tetapkan backupType ke PvBackup untuk hanya melakukan backup data volume. Tentukan pvcList untuk backup PVC tertentu, atau storageClassList untuk backup volume dari StorageClass tertentu. Jika Anda menetapkan keduanya, storageClassList akan diabaikan. Jika tidak menetapkan keduanya, semua volume dalam namespace yang disertakan akan dibackup.

Buat tugas PvBackup instan

  1. Tambahkan berikut ini ke csdr.tf, sesuaikan nilai sesuai kebutuhan:

    resource "kubernetes_manifest" "applicationbackup-demo" {
      manifest = {
        apiVersion  = "csdr.alibabacloud.com/v1beta1"
        kind        = "ApplicationBackup"
        metadata = {
          name      = "<yourApplicationBackupName>"
          namespace = "csdr"
          annotations = {
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<yourBackuplocationName>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-yourBucketName>\",\"prefix\":\"<subDir>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          backupType         = "PvBackup"
          includedNamespaces = ["default","default1"]
          pvBackup = {
            pvcList = [
              { namespace = "default",  name = "pvc-nas" },
              { namespace = "default1", name = "pvc-oss" }
            ]
            storageClassList = ["disk-essd","disk-ssd"]
          }
          storageLocation = "<yourBackuplocationName>"
          ttl             = "720h0m0s"
        }
      }
    }
  2. Hasilkan rencana sumber daya:

    terraform plan
  3. Buat tugas backup instan:

    terraform apply

Buat jadwal PvBackup

  1. Tambahkan berikut ini ke csdr.tf, sesuaikan nilai sesuai kebutuhan:

    resource "kubernetes_manifest" "backupschedule-demo" {
      manifest = {
        apiVersion  = "csdr.alibabacloud.com/v1beta1"
        kind        = "BackupSchedule"
        metadata = {
          name      = "<yourBackupScheduleName>"
          namespace = "csdr"
          annotations = {
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<yourBackuplocationName>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-yourBucketName>\",\"prefix\":\"<subDir>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          schedule = "1 4 * * *"
          template = {
            includedNamespaces = ["default","default1"]
            pvBackup = {
              pvcList = [
                { namespace = "default",  name = "pvc-nas" },
                { namespace = "default1", name = "pvc-oss" }
              ]
              storageClassList = ["disk-essd","disk-ssd"]
            }
            storageLocation = "<yourBackuplocationName>"
            ttl             = "720h0m0s"
          }
        }
      }
    }
  2. Hasilkan rencana sumber daya dan terapkan:

    terraform plan
    terraform apply

Langkah 4: Buat tugas pemulihan

Tugas pemulihan (ApplicationRestore CR) memulihkan aplikasi dari backup, dengan opsi pemetaan ulang namespace dan konversi StorageClass.

  1. Tambahkan berikut ini ke csdr.tf, ganti placeholder-nya:

    Parameter Wajib Deskripsi
    csdr.alibabacloud.com/backuplocations Ya Anotasi penyimpanan cadangan. Harus sesuai dengan konfigurasi BackupLocation.
    name Ya Nama tugas pemulihan.
    appRestoreOnly Tidak true: pulihkan hanya aplikasi (bukan klaim volume persisten (PVC), volume persisten (PV), atau data volume); buat PVC dan PV secara manual sebelum memulihkan. false: pulihkan aplikasi dan data volume. Default: false.
    preserveNodePorts Tidak true: pertahankan nilai NodePort asli. false: tetapkan ulang NodePort ke port acak. Tetapkan ke false ketika kedua kluster menggunakan NodePort yang sama.
    includedNamespaces Ya Namespace yang akan dipulihkan. Jika kosong, semua namespace yang dibackup akan dipulihkan.
    includedResources Tidak Jenis resource yang disertakan. Tentukan hanya salah satu dari includedResources atau excludedResources.
    excludedResources Tidak Jenis resource yang dikecualikan.
    backupName Ya Nama backup yang akan dipulihkan. Untuk backup terjadwal, tentukan nama backup titik waktu, seperti <your-schedule-name>-20221205225845.
    namespaceMapping Tidak Memetakan <backup-namespace> ke <target-namespace>. Namespace target yang belum ada akan dibuat secara otomatis.
    convertedarg Tidak Daftar konversi StorageClass untuk volume bertipe FileSystem (OSS, NAS, CPFS, lokal). Setiap entri menentukan convertToStorageClassType (StorageClass target; harus berupa disk atau NAS dan harus ada di kluster), namespace , dan persistentVolumeClaim . Jalankan kubectl -ncsdr describe <backup-name> untuk mengidentifikasi PVC yang memenuhi syarat.
    Penting

    Volume ReadWriteMany tidak dapat dikonversi ke disk. Untuk volume ReadOnlyMany, pastikan replika tidak dipasang secara simultan di beberapa node.

    resource "kubernetes_manifest" "applicationrestore-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "ApplicationRestore"
        metadata = {
          name      = "<your-restoration-task-name>"
          namespace = "csdr"
          annotations = {
            "csdr.alibabacloud.com/backuplocations" = "{\"name\":\"<your-backup-vault-name>\",\"region\":\"cn-beijing\",\"bucket\":\"<cnfs-oss-your-bucket-name>\",\"prefix\":\"<sub-directory>\",\"provider\":\"alibabacloud\"}"
          }
        }
        spec = {
          # "false": pulihkan aplikasi dan data volume (default)
          # "true":  pulihkan hanya aplikasi; buat PVC dan PV secara manual terlebih dahulu
          appRestoreOnly = "false"
    
          # "true":  pertahankan nilai NodePort asli dari backup
          # "false": tetapkan ulang NodePort ke port acak (gunakan saat kluster backup dan target menggunakan NodePort yang sama)
          preserveNodePorts = "true"
    
          includedNamespaces = ["default", "default1"]
          includedResources  = ["statefulset"]
          excludedResources  = ["excludedResources"]
    
          # Konversi StorageClass untuk volume bertipe FileSystem (OSS, NAS, CPFS, volume lokal).
          # Jalankan `kubectl -ncsdr describe <backup-name>` dan periksa
          # status.resourceList.dataResource.pvcBackupInfo untuk menemukan PVC yang memenuhi syarat untuk konversi.
          # Penting: Volume ReadWriteMany tidak dapat dikonversi ke disk.
          # Untuk volume ReadOnlyMany yang dikonversi ke disk, pastikan replika tidak dipasang di beberapa node secara bersamaan.
          convertedarg = [
            {
              convertToStorageClassType = "alicloud-disk-topology-alltype"  # StorageClass target (harus ada di kluster; hanya disk atau NAS)
              namespace                 = "default"
              persistentVolumeClaim     = "pvc-nas"
            },
            {
              convertToStorageClassType = "alicloud-disk-topology-alltype"
              namespace                 = "default1"
              persistentVolumeClaim     = "pvc-oss"
            }
          ]
    
          # Backup yang akan dipulihkan.
          # Untuk backup terjadwal, tentukan nama backup titik waktu, misalnya:
          # "<your-schedule-name>-20221205225845"
          backupName = "<your-backup-task-name>"
    
          # Memetakan namespace dalam backup ke namespace berbeda di kluster target.
          # Jika namespace target tidak ada, akan dibuat secara otomatis.
          namespaceMapping = {
            "<backup-namespace>" = "<target-namespace>"
          }
        }
      }
    
      # Hapus komentar untuk menunggu hingga pemulihan selesai (disarankan untuk alur kerja skrip).
      # Durasi pemulihan tergantung pada jumlah aplikasi dan ukuran data volume.
      #wait {
      #  fields = {
      #    "status.phase" = "Completed"
      #  }
      #}
      #timeouts {
      #  create = "60m"
      #}
    }
  2. Pratinjau perubahan:

    terraform plan
  3. Buat tugas pemulihan:

    terraform apply

    Expand to view returned information

    kubernetes_manifest.applicationrestore-demo: Creating...
    kubernetes_manifest.applicationrestore-demo: Creation complete after 1s
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Langkah 5: Hapus sumber daya

Penting

Penyimpanan cadangan (BackupLocation) tidak dapat dihapus karena kluster lain mungkin bergantung padanya.

Hapus tugas backup terjadwal

Jalankan terraform destroy untuk menghapus BackupSchedule dan menghentikan jadwal.

Hapus tugas backup atau tugas pemulihan

Gunakan DeleteRequest CR untuk menghapus tugas backup atau pemulihan serta sumber daya cloud terkait secara aman.

Menghapus tugas backup tidak memengaruhi backup yang sudah ada. Menghapus tugas pemulihan tidak memengaruhi data yang telah dipulihkan.
  1. Tambahkan berikut ini ke csdr.tf:

    Parameter Wajib Deskripsi
    name Ya Nama permintaan penghapusan. Format: <ApplicationBackup-name>-dbr untuk menghapus tugas backup, atau <ApplicationRestore-name>-dbr untuk menghapus tugas pemulihan.
    deleteObjectName Ya Nama resource yang akan dihapus.
    deleteObjectType Ya "Backup": menghapus ApplicationBackup CR dan resource terkait. "Restore": menghapus ApplicationRestore CR dan resource terkait.
    resource "kubernetes_manifest" "deleterequest-demo" {
      manifest = {
        apiVersion = "csdr.alibabacloud.com/v1beta1"
        kind       = "DeleteRequest"
        metadata = {
          name      = "<object-name>-dbr"  # Format: <ApplicationBackup-or-ApplicationRestore-name>-dbr
          namespace = "csdr"
        }
        spec = {
          deleteObjectName = "<object-name>"   # Nama tugas backup atau pemulihan yang akan dihapus
          deleteObjectType = "Backup"          # "Backup": menghapus ApplicationBackup dan resource terkait
                                               # "Restore": menghapus ApplicationRestore dan resource terkait
        }
      }
    }
  2. Pratinjau perubahan:

    terraform plan
  3. Terapkan penghapusan:

    terraform apply

    Expand to view the output

    kubernetes_manifest.deleterequest-demo: Creating...
    kubernetes_manifest.deleterequest-demo: Creation complete after 0s
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

    Setelah menghapus resource target, sistem juga akan menghapus DeleteRequest CR.

Langkah selanjutnya

Referensi