summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorKubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com>2024-01-15 21:18:26 +0800
committerGitHub <noreply@github.com>2024-01-15 21:18:26 +0800
commit88e4b1ec243d9049de9be28c8ea4dd3c0612f07d (patch)
tree770598173cdf13db42b9a61849e6651b2ad2749c /build
parentMerge pull request #5353 from WillardHu/approver (diff)
parentsupport enable imagePrePullController through helm (diff)
downloadkubeedge-88e4b1ec243d9049de9be28c8ea4dd3c0612f07d.tar.gz
Merge pull request #5331 from Shelley-BaoYue/image-prepull
support image prepull feature
Diffstat (limited to 'build')
-rw-r--r--build/admission/clusterrole.yaml2
-rw-r--r--build/cloud/03-clusterrole.yaml2
-rw-r--r--build/crd-samples/operations/imageprepulljob.yaml14
-rw-r--r--build/crd-samples/operations/nodeupgradejob.yaml (renamed from build/crd-samples/nodeupgradejob.yaml)0
-rw-r--r--build/crds/operations/operations_v1alpha1_imageprepulljob.yaml204
5 files changed, 220 insertions, 2 deletions
diff --git a/build/admission/clusterrole.yaml b/build/admission/clusterrole.yaml
index 0f3519949..92d13bf9e 100644
--- a/build/admission/clusterrole.yaml
+++ b/build/admission/clusterrole.yaml
@@ -26,5 +26,5 @@ rules:
resources: ["rules", "ruleendpoints"]
verbs: ["get", "list"]
- apiGroups: ["operations.kubeedge.io"]
- resources: ["nodeupgradejobs"]
+ resources: ["nodeupgradejobs", "imageprepulljobs"]
verbs: ["get", "list"]
diff --git a/build/cloud/03-clusterrole.yaml b/build/cloud/03-clusterrole.yaml
index 2bb3ac7df..19978bcdb 100644
--- a/build/cloud/03-clusterrole.yaml
+++ b/build/cloud/03-clusterrole.yaml
@@ -37,5 +37,5 @@ rules:
resources: ["*"]
verbs: ["get", "list", "watch"]
- apiGroups: ["operations.kubeedge.io"]
- resources: ["nodeupgradejobs", "nodeupgradejobs/status"]
+ resources: ["nodeupgradejobs", "nodeupgradejobs/status", "imageprepulljobs", "imageprepulljobs/status"]
verbs: ["get", "list", "watch", "update", "patch"]
diff --git a/build/crd-samples/operations/imageprepulljob.yaml b/build/crd-samples/operations/imageprepulljob.yaml
new file mode 100644
index 000000000..cebfbe27f
--- /dev/null
+++ b/build/crd-samples/operations/imageprepulljob.yaml
@@ -0,0 +1,14 @@
+apiVersion: operations.kubeedge.io/v1alpha1
+kind: ImagePrePullJob
+metadata:
+ name: imageprepull-example
+ labels:
+ description: ImagePrePullLabel
+spec:
+ imagePrePullTemplate:
+ images:
+ - busybox:latest
+ nodes:
+ - edgenode1 # Need to replaced with your own node name
+ timeoutSecondsOnEachNode: 300
+ retryTimesOnEachNode: 1 \ No newline at end of file
diff --git a/build/crd-samples/nodeupgradejob.yaml b/build/crd-samples/operations/nodeupgradejob.yaml
index 5b97287d7..5b97287d7 100644
--- a/build/crd-samples/nodeupgradejob.yaml
+++ b/build/crd-samples/operations/nodeupgradejob.yaml
diff --git a/build/crds/operations/operations_v1alpha1_imageprepulljob.yaml b/build/crds/operations/operations_v1alpha1_imageprepulljob.yaml
new file mode 100644
index 000000000..903516d32
--- /dev/null
+++ b/build/crds/operations/operations_v1alpha1_imageprepulljob.yaml
@@ -0,0 +1,204 @@
+
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.6.2
+ creationTimestamp: null
+ name: imageprepulljobs.operations.kubeedge.io
+spec:
+ group: operations.kubeedge.io
+ names:
+ kind: ImagePrePullJob
+ listKind: ImagePrePullJobList
+ plural: imageprepulljobs
+ singular: imageprepulljob
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: ImagePrePullJob is used to prepull images on edge node.
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Spec represents the specification of the desired behavior
+ of ImagePrePullJob.
+ properties:
+ imagePrePullTemplate:
+ description: ImagePrepullTemplate represents original templates of
+ imagePrePull
+ properties:
+ checkItems:
+ description: CheckItems specifies the items need to be checked
+ before the task is executed. The default CheckItems value is
+ disk.
+ items:
+ type: string
+ type: array
+ imageSecrets:
+ description: ImageSecret specifies the secret for image pull if
+ private registry used. Use {namespace}/{secretName} in format.
+ type: string
+ images:
+ description: Images is the image list to be prepull
+ items:
+ type: string
+ type: array
+ labelSelector:
+ description: LabelSelector is a filter to select member clusters
+ by labels. It must match a node's labels for the NodeUpgradeJob
+ to be operated on that node. Please note that sets of NodeNames
+ and LabelSelector are ORed. Users must set one and can only
+ set one.
+ properties:
+ matchExpressions:
+ description: matchExpressions is a list of label selector
+ requirements. The requirements are ANDed.
+ items:
+ description: A label selector requirement is a selector
+ that contains values, a key, and an operator that relates
+ the key and values.
+ properties:
+ key:
+ description: key is the label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: operator represents a key's relationship
+ to a set of values. Valid operators are In, NotIn,
+ Exists and DoesNotExist.
+ type: string
+ values:
+ description: values is an array of string values. If
+ the operator is In or NotIn, the values array must
+ be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced
+ during a strategic merge patch.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ description: matchLabels is a map of {key,value} pairs. A
+ single {key,value} in the matchLabels map is equivalent
+ to an element of matchExpressions, whose key field is "key",
+ the operator is "In", and the values array contains only
+ "value". The requirements are ANDed.
+ type: object
+ type: object
+ nodeNames:
+ description: NodeNames is a request to select some specific nodes.
+ If it is non-empty, the upgrade job simply select these edge
+ nodes to do upgrade operation. Please note that sets of NodeNames
+ and LabelSelector are ORed. Users must set one and can only
+ set one.
+ items:
+ type: string
+ type: array
+ retryTimes:
+ description: RetryTimes specifies the retry times if image pull
+ failed on each edgenode. Default to 0
+ format: int32
+ type: integer
+ timeoutSecondsOnEachNode:
+ description: TimeoutSecondsOnEachNode limits the duration of the
+ image prepull job on each edgenode. Default to 360. If set to
+ 0, we'll use the default value 360.
+ format: int32
+ type: integer
+ type: object
+ type: object
+ status:
+ description: Status represents the status of ImagePrePullJob.
+ properties:
+ state:
+ description: 'State represents for the state phase of the ImagePrePullJob.
+ There are four possible state values: "", prechecking, prepulling,
+ successful, failed.'
+ enum:
+ - prepulling
+ - successful
+ - failed
+ type: string
+ status:
+ description: Status contains image prepull status for each edge node.
+ items:
+ description: ImagePrePullStatus stores image prepull status for
+ each edge node.
+ properties:
+ imageStatus:
+ description: ImageStatus represents the prepull status for each
+ image
+ items:
+ description: ImageStatus stores the prepull status for each
+ image.
+ properties:
+ image:
+ description: Image is the name of the image
+ type: string
+ reason:
+ description: Reason represents the fail reason if image
+ pull failed
+ type: string
+ state:
+ description: 'State represents for the state phase of
+ this image pull on the edge node There are two possible
+ state values: successful, failed.'
+ enum:
+ - prepulling
+ - successful
+ - failed
+ type: string
+ type: object
+ type: array
+ nodeName:
+ description: NodeName is the name of edge node.
+ type: string
+ reason:
+ description: Reason represents the fail reason if images prepull
+ failed on the edge node
+ type: string
+ state:
+ description: 'State represents for the state phase of the ImagePrepullJob
+ on the edge node. There are five possible state values: "",
+ prepulling, successful, failed.'
+ enum:
+ - prepulling
+ - successful
+ - failed
+ type: string
+ type: object
+ type: array
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: []
+ storedVersions: []