Score:2

จะโหลด configmap จากไฟล์คุณสมบัติโดยใช้ kustomize ได้อย่างไร

ธง cn

ฉันได้ลองใช้ kustomize เพื่อโหลดไฟล์คุณสมบัติเป็น configmap

สำหรับสิ่งนั้น ฉันสร้างชุดตัวอย่างใน GitHub ลิงค์.

ด้วยไฟล์พื้นฐาน:

#ปรับแต่งฐานการสร้าง
api เวอร์ชัน: v1
ข้อมูล:
  การกำหนดค่า: |-
    dbport=1234
    dcname=sfsdf
    dbssl=เท็จ
    เวลาล็อค=300
    ผู้ใช้โดเมน=
ประเภท: ConfigMap
ข้อมูลเมตา:
  ป้ายกำกับ:
    เจ้าของ: sara
  ชื่อ: ฐานข้อมูล-configmap
---
apiVersion: แอป/v1
ประเภท: การปรับใช้
ข้อมูลเมตา:
  ป้ายกำกับ:
    แอพ: nginx
    เจ้าของ: sara
  ชื่อ: nginx
ข้อมูลจำเพาะ:
  แบบจำลอง: 1
  ตัวเลือก:
    ป้ายกำกับการแข่งขัน:
      แอพ: nginx
      เจ้าของ: sara
  แม่แบบ:
    ข้อมูลเมตา:
      ป้ายกำกับ:
        แอพ: nginx
        เจ้าของ: sara
    ข้อมูลจำเพาะ:
      ตู้คอนเทนเนอร์:
      - ภาพ: nginx
        ชื่อ: nginx

ด้วยไฟล์ภายนอก:

#ปรับแต่งไฟล์บิลด์
api เวอร์ชัน: v1
ข้อมูล:
  config: "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
ประเภท: ConfigMap
ข้อมูลเมตา:
  ป้ายกำกับ:
    สภาพแวดล้อม: การพัฒนา
    เจ้าของ: sara
  ชื่อ: dev-database-configmap
---
apiVersion: แอป/v1
ประเภท: การปรับใช้
ข้อมูลเมตา:
  ป้ายกำกับ:
    แอพ: nginx
    สภาพแวดล้อม: การพัฒนา
    เจ้าของ: sara
  ชื่อ: dev-nginx
ข้อมูลจำเพาะ:
  แบบจำลอง: 1
  ตัวเลือก:
    ป้ายกำกับการแข่งขัน:
      แอพ: nginx
      สภาพแวดล้อม: การพัฒนา
      เจ้าของ: sara
  แม่แบบ:
    ข้อมูลเมตา:
      ป้ายกำกับ:
        แอพ: nginx
        สภาพแวดล้อม: การพัฒนา
        เจ้าของ: sara
    ข้อมูลจำเพาะ:
      ตู้คอนเทนเนอร์:
      - ภาพ: nginx
        ชื่อ: nginx

หากคุณสังเกต configmap | ถูกลบออกและถูกแทนที่ด้วย \r\n เป็นสตริงเดียว จะแก้ไขการจัดตำแหน่งนี้ได้อย่างไร?

in flag
อักขระ `\ r` กัน ทั้งสองรูปแบบเหมือนกัน; `: |` การอ้างอิงสเกลาร์สำหรับเป็นเพียงการบริโภคของมนุษย์ -- เมื่อถึงเวลาที่มันเข้าไปในคลัสเตอร์ มันจะอยู่ในรูปแบบ `config: "อะไรก็ตาม\nสิ่งอื่นใด\n"` เนื่องจาก `yaml2json` จะแสดงสำหรับทั้งสองรูปแบบ หรือแน่นอนว่ามันเกิดขึ้นจริงในพ็อดได้อย่างไร
Score:0
ธง in

โพสต์สิ่งนี้เป็นวิกิชุมชน คุณสามารถแก้ไขและขยายได้ตามสบาย


ตามที่ @mdaniel กล่าวถึงใน ความคิดเห็น:

อักขระ \r ข้างๆ ทั้งสองรูปแบบนั้นเหมือนกัน ที่ : | การอ้างอิงสเกลาร์เป็นเพียงสำหรับการบริโภคของมนุษย์ - ตามเวลานั้น เข้าสู่คลัสเตอร์ซึ่งเป็นรูปแบบการกำหนดค่า: "อะไรก็ตาม\nสิ่งอื่น\n" ตามที่ yaml2json จะแสดงสำหรับทั้งสองรูปแบบ หรือ แน่นอนว่ามันเกิดขึ้นจริงใน Pod ได้อย่างไร

คุณสามารถตรวจสอบได้โดยรับรายละเอียด configmap จากคลัสเตอร์ kubernetes เจสัน และดูว่าจัดเก็บในลักษณะเดียวกัน (ยกเว้นเพิ่มเติม \r ที่กล่าวถึงข้างต้น):

$ kubectl รับ cm ฐานข้อมูล configmap -o json
{
    "apiVersion": "v1",
    "ข้อมูล": {
        "config": "dbport=1234\ndcname=sfsdf\ndbssl=false\nlocktime=300\ndomainuser="
    },
    "ชนิด": "ConfigMap",
    ...

และ

$ kubectl รับ cm dev-database-configmap -o json
{
    "apiVersion": "v1",
    "ข้อมูล": {
        "config": "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\nผู้ใช้โดเมน=somedts"
    },
    "ชนิด": "ConfigMap",
    ...

มีคำตอบใน StackOverflow ซึ่งจะแสดงในไม่ช้า ความแตกต่างระหว่าง \n , \r และ \r\n.

Wytrzymały Wiktor avatar
it flag
สวัสดี @SaraJune นี่ [ตอบคำถามของคุณ](https://stackoverflow.com/help/someone-answers)ไหม

โพสต์คำตอบ

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