Score:0

เงื่อนไขเบื้องต้นของ kyverno สำหรับค่าว่างที่เป็นไปได้

ธง vn

ฉันกำลังเรียนรู้วิธีใช้ kyverno เพื่อสร้างนโยบาย แต่ฉันประสบปัญหาเล็กน้อยในการทำความเข้าใจพฤติกรรมบางอย่าง:

สถานการณ์แรกของฉันคือฉันต้องการบล็อกทรัพยากรบางอย่างที่อาจมีหรือไม่มีการตั้งค่า spec.tier หากมีการตั้งค่าและแตกต่างจาก 'แอปพลิเคชัน' ฉันต้องการให้บล็อก หากไม่ได้ตั้งค่าไว้ ควรอนุญาต ดังนั้นฉันจึงลองสิ่งนี้:

apiVersion: kyverno.io/v1
ประเภท: ClusterPolicy
ข้อมูลเมตา:
  ชื่อ: การทดสอบบล็อกระดับ
ข้อมูลจำเพาะ:
  การตรวจสอบความล้มเหลวการดำเนินการ: บังคับใช้
  พื้นหลัง: เท็จ
  กฎ:
  - ชื่อ: การทดสอบบล็อกระดับ
    จับคู่:
      ใดๆ:
      - ทรัพยากร:
          ชนิด:
          - crd.antrea.io/v1alpha1/NetworkPolicy
    เงื่อนไขเบื้องต้น:
      ใดๆ:
      - คีย์: "{{request.object.spec.tier || 'แอปพลิเคชัน'}}"
        ตัวดำเนินการ: NotEquals
        ค่า: ใบสมัคร
    ตรวจสอบความถูกต้อง:
      ข้อความ: "Antrea namespaced ANP สามารถใช้ได้เฉพาะในระดับ: แอปพลิเคชัน"
      ปฏิเสธ: {}

นโยบายทำงานตามที่คาดไว้ตราบเท่าที่มีระดับที่กำหนดไว้ใน yaml

ยอมรับหากมีระดับ: แอปพลิเคชัน

apiVersion: crd.antrea.io/v1alpha1
ชนิด: NetworkPolicy
ข้อมูลเมตา:
  ชื่อ: ทดสอบ-np     
ข้อมูลจำเพาะ:
    ชั้น: ใบสมัคร

ปฏิเสธถ้ามีระดับ: อย่างอื่น

apiVersion: crd.antrea.io/v1alpha1
ชนิด: NetworkPolicy
ข้อมูลเมตา:
  ชื่อ: ทดสอบ-np     
ข้อมูลจำเพาะ:
    ชั้น: ฉุกเฉิน

แต่ยังปฏิเสธหากไม่มีการตั้งค่า spec.tier ซึ่งฉันไม่ได้คาดหวังเนื่องจากค่าเริ่มต้นหากไม่มีอยู่คือ "แอปพลิเคชัน" ต่อคีย์: "{{request.object.spec.tier || 'แอปพลิเคชัน'}}"

ฉันควรเปลี่ยนอะไรเพื่อให้ทำงานได้ตามที่คาดไว้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา