9.8.3. 仮想マシン削除保護オプションの削除
仮想マシン (VM) で削除保護を有効化すると、仮想マシンが誤って削除されることがなくなります。仮想マシンの保護を無効化することもできます。
クラスター管理者は、仮想マシン削除保護オプションを利用できないように選択できます。削除保護がすでに有効になっている仮想マシンでは、その設定が保持されます。新規に作成される仮想マシンでは、オプションを有効化できません。
クラスターの検証許可ポリシーを確立し、クラスターでポリシーを使用するために必要なバインディングを作成することで、削除保護オプションを削除できます。
前提条件
- クラスター管理者の権限がある。
-
OpenShift CLI (
oc) がインストールされている。
手順
次の例に示すように、validation admission policy を作成します。
validation admission policy ファイルの例
apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: "disable-vm-delete-protection" spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: ["kubevirt.io"] apiVersions: ["*"] operations: ["UPDATE", "CREATE"] resources: ["virtualmachines"] variables: - expression: string('kubevirt.io/vm-delete-protection') name: vmDeleteProtectionLabel validations: - expression: >- !has(object.metadata.labels) || !object.metadata.labels.exists(label, label == variables.vmDeleteProtectionLabel) || has(oldObject.metadata.labels) && oldObject.metadata.labels.exists(label, label == variables.vmDeleteProtectionLabel) message: "Virtual Machine delete protection feature is disabled"validation admission policy をクラスターに適用します。
$ oc apply -f disable-vm-delete-protection.yaml次の例に示すように、validation admission policy バインディングを作成します。
validation admission policy バインディングファイルの例
apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: "disable-vm-delete-protection-binding" spec: policyName: "disable-vm-delete-protection" validationActions: [Deny] matchResources:validation admission policy バインディングをクラスターに適用します。
$ oc apply -f disable-vm-delete-protection-binding.yaml