CRD document.suin.jp を作成します:
cargo run --bin apply_crdCR example を作成します:
cargo run --bin createすると、次のようなCRが作成されます:
apiVersion: suin.jp/v1
kind: Document
metadata:
# ...
name: example
namespace: default
# ...
spec:
tags:
- key: key1
value: value1
- key: key2
value: value2
- key: key3
value: value3
- key: key4
value: value4
title: Example documentこのCRは2つのマネージャーによって管理されています。マネージャーはそれぞれ異なるタグを持っています:
- マネージャー1:
manager-1- タグ:
key1,key2
- タグ:
- マネージャー2:
manager-2- タグ:
key3,key4
- タグ:
CR example を更新します:
cargo run --bin updateこの処理では、次のことをします。
- マネージャー1はタグ
key2をnew-value2!に更新します。key1はペイロードに含まれていません。
- マネージャー2はタグ
key4をnew-value4!に更新します。key3はペイロードに含まれていません。
この処理の詳細はupdate.rsを参照してください。
すると、次のような差分が発生します:
manager-1でApplyした場合のdiff:
title: Example document
tags:
-- key: key1
- value: value1
- key: key2
- value: value2
+ value: new-value2!
- key: key3
value: value3
- key: key4
value: value4
manager-2でApplyした場合のdiff:
title: Example document
tags:
- key: key1
value: value1
- key: key2
value: value2
-- key: key3
- value: value3
- key: key4
- value: value4
+ value: new-value4!