add customizations for apps.krusie.io/v1alpha1/DaemonSet

Signed-off-by: yike21 <yike21@qq.com>
This commit is contained in:
yike21 2023-04-01 23:39:44 +08:00
parent c3d54ccccf
commit f051591a84
4 changed files with 212 additions and 0 deletions

View File

@ -0,0 +1,109 @@
apiVersion: config.karmada.io/v1alpha1
kind: ResourceInterpreterCustomization
metadata:
name: declarative-configuration-daemonset
spec:
target:
apiVersion: apps.kruise.io/v1alpha1
kind: DaemonSet
customizations:
statusAggregation:
luaScript: >
function AggregateStatus(desiredObj, statusItems)
if statusItems == nil then
return desiredObj
end
if desiredObj.status == nil then
desiredObj.status = {}
end
if desiredObj.metadata.generation == nil then
desiredObj.metadata.generation = 0
end
generation = desiredObj.metadata.generation
currentNumberScheduled = 0
numberMisscheduled = 0
desiredNumberScheduled = 0
numberReady = 0
updatedNumberScheduled = 0
numberAvailable = 0
numberUnavailable = 0
daemonSetHash = 0
for i = 1, #statusItems do
if statusItems[i].status ~= nil and statusItems[i].status.currentNumberScheduled ~= nil then
currentNumberScheduled = currentNumberScheduled + statusItems[i].status.currentNumberScheduled
end
if statusItems[i].status ~= nil and statusItems[i].status.numberMisscheduled ~= nil then
numberMisscheduled = numberMisscheduled + statusItems[i].status.numberMisscheduled
end
if statusItems[i].status ~= nil and statusItems[i].status.desiredNumberScheduled ~= nil then
desiredNumberScheduled = desiredNumberScheduled + statusItems[i].status.desiredNumberScheduled
end
if statusItems[i].status ~= nil and statusItems[i].status.numberReady ~= nil then
numberReady = numberReady + statusItems[i].status.numberReady
end
if statusItems[i].status ~= nil and statusItems[i].status.updatedNumberScheduled ~= nil then
updatedNumberScheduled = updatedNumberScheduled + statusItems[i].status.updatedNumberScheduled
end
if statusItems[i].status ~= nil and statusItems[i].status.numberAvailable ~= nil then
numberAvailable = numberAvailable + statusItems[i].status.numberAvailable
end
if statusItems[i].status ~= nil and statusItems[i].status.numberUnavailable ~= nil then
numberUnavailable = numberUnavailable + statusItems[i].status.numberUnavailable
end
if statusItems[i].status ~= nil and statusItems[i].status.observedGeneration ~= nil and statusItems[i].status.observedGeneration ~= '' then
generation = statusItems[i].status.observedGeneration
end
if statusItems[i].status ~= nil and statusItems[i].status.daemonSetHash ~= nil and statusItems[i].status.daemonSetHash ~= '' then
daemonSetHash = statusItems[i].status.daemonSetHash
end
end
desiredObj.status.observedGeneration = generation
desiredObj.status.currentNumberScheduled = currentNumberScheduled
desiredObj.status.numberMisscheduled = numberMisscheduled
desiredObj.status.desiredNumberScheduled = desiredNumberScheduled
desiredObj.status.numberReady = numberReady
desiredObj.status.updatedNumberScheduled = updatedNumberScheduled
desiredObj.status.numberAvailable = numberAvailable
desiredObj.status.numberUnavailable = numberUnavailable
desiredObj.status.daemonSetHash = daemonSetHash
return desiredObj
end
statusReflection:
luaScript: >
function ReflectStatus (observedObj)
status = {}
if observedObj == nil or observedObj.status == nil then
return status
end
status.observedGeneration = observedObj.status.observedGeneration
status.currentNumberScheduled = observedObj.status.currentNumberScheduled
status.numberMisscheduled = observedObj.status.numberMisscheduled
status.desiredNumberScheduled = observedObj.status.desiredNumberScheduled
status.numberReady = observedObj.status.numberReady
status.updatedNumberScheduled = observedObj.status.updatedNumberScheduled
status.numberAvailable = observedObj.status.numberAvailable
status.numberUnavailable = observedObj.status.numberUnavailable
status.daemonSetHash = observedObj.status.daemonSetHash
return status
end
healthInterpretation:
luaScript: >
function InterpretHealth(observedObj)
if observedObj.status.observedGeneration ~= observedObj.metadata.generation then
return false
end
if observedObj.status.updatedNumberScheduled < observedObj.status.desiredNumberScheduled then
return false
end
if observedObj.status.numberAvailable < observedObj.status.updatedNumberScheduled then
return false
end
return true
end
dependencyInterpretation:
luaScript: >
local kube = require("kube")
function GetDependencies(desiredObj)
refs = kube.getPodDependencies(desiredObj.spec.template, desiredObj.metadata.namespace)
return refs
end

View File

@ -0,0 +1,34 @@
apiVersion: apps.kruise.io/v1alpha1
kind: DaemonSet
metadata:
labels:
app: sample-daemonset
name: sample
namespace: test-kruise-daemonset
spec:
selector:
matchLabels:
app: sample-daemonset
template:
metadata:
labels:
app: sample-daemonset
spec:
volumes:
- name: configmap
configMap:
name: my-sample-config
containers:
- name: nginx
image: nginx:alpine
env:
- name: logData
valueFrom:
configMapKeyRef:
name: mysql-config
key: log
- name: lowerData
valueFrom:
configMapKeyRef:
name: mysql-config
key: lower

View File

@ -0,0 +1,44 @@
apiVersion: apps.kruise.io/v1alpha1
kind: DaemonSet
metadata:
labels:
app: sample-daemonset
name: sample
namespace: test-kruise-daemonset
generation: 1
spec:
selector:
matchLabels:
app: sample-daemonset
template:
metadata:
labels:
app: sample-daemonset
spec:
volumes:
- name: configmap
configMap:
name: my-sample-config
containers:
- name: nginx
image: nginx:alpine
env:
- name: logData
valueFrom:
configMapKeyRef:
name: mysql-config
key: log
- name: lowerData
valueFrom:
configMapKeyRef:
name: mysql-config
key: lower
status:
currentNumberScheduled: 1
daemonSetHash: 7dd59cf749
desiredNumberScheduled: 1
numberAvailable: 1
numberMisscheduled: 0
numberReady: 1
observedGeneration: 1
updatedNumberScheduled: 1

View File

@ -0,0 +1,25 @@
applied: true
clusterName: member1
health: Healthy
status:
currentNumberScheduled: 1
daemonSetHash: 7dd59cf749
desiredNumberScheduled: 1
numberAvailable: 1
numberMisscheduled: 0
numberReady: 1
observedGeneration: 1
updatedNumberScheduled: 1
---
applied: true
clusterName: member3
health: Healthy
status:
currentNumberScheduled: 1
daemonSetHash: 7dd59cf749
desiredNumberScheduled: 1
numberAvailable: 1
numberMisscheduled: 0
numberReady: 1
observedGeneration: 1
updatedNumberScheduled: 1