From ff8b36e3fb81b7eeb4113716d096bff4c17dec5b Mon Sep 17 00:00:00 2001 From: Guangbo Chen Date: Wed, 15 Apr 2020 14:45:46 +0800 Subject: [PATCH] fix: update templates of octopus and adaptors update the deploy templates of octopus and adaptors closes #53 --- adaptors/ble/deploy/e2e/all_in_one.yaml | 11 +++++++++-- .../deploy/manifests/crd/kustomization.yaml | 3 +++ .../deploy/manifests/workload/daemonset.yaml | 5 +++-- adaptors/dummy/deploy/e2e/all_in_one.yaml | 5 +++-- .../deploy/manifests/crd/kustomization.yaml | 3 +++ .../deploy/manifests/workload/daemonset.yaml | 2 -- adaptors/modbus/deploy/e2e/all_in_one.yaml | 9 +++++++-- .../deploy/manifests/crd/kustomization.yaml | 2 ++ .../deploy/manifests/workload/daemonset.yaml | 2 -- adaptors/opcua/deploy/e2e/all_in_one.yaml | 5 +++++ .../deploy/manifests/crd/kustomization.yaml | 2 ++ deploy/e2e/all_in_one.yaml | 14 ++++++++++---- deploy/e2e/all_in_one_without_webhook.yaml | 14 ++++++++++---- deploy/manifests/workload/daemonset.yaml | 2 -- deploy/manifests/workload/deployment.yaml | 12 ++++++++++-- .../api/v1alpha1/zz_generated.deepcopy.go | 2 +- template/adaptor/deploy/e2e/all_in_one.yaml | 19 ++++++++++--------- .../deploy/manifests/crd/kustomization.yaml | 5 ++++- .../deploy/manifests/workload/daemonset.yaml | 2 -- 19 files changed, 82 insertions(+), 37 deletions(-) diff --git a/adaptors/ble/deploy/e2e/all_in_one.yaml b/adaptors/ble/deploy/e2e/all_in_one.yaml index 8a70c1d6..a0a0976b 100644 --- a/adaptors/ble/deploy/e2e/all_in_one.yaml +++ b/adaptors/ble/deploy/e2e/all_in_one.yaml @@ -3,7 +3,13 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.5 + devices.edge.cattle.io/description: BLE stands for Bluetooth Low Energy (Bluetooth + LE, , and marketed as Bluetooth Smart). BLE is a form of wireless communication + designed for short-range communications. The BLE adaptor defines the device + configuration and the attributes of connected BLE device. + devices.edge.cattle.io/device-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/icon: https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/ble-logo.svg creationTimestamp: null labels: app.kubernetes.io/name: octopus-adaptor-ble @@ -207,11 +213,12 @@ spec: containers: - image: rancher/octopus-adaptor-ble:master name: octopus + securityContext: + privileged: true volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets - nodeSelector: - beta.kubernetes.io/os: linux + hostNetwork: true volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/adaptors/ble/deploy/manifests/crd/kustomization.yaml b/adaptors/ble/deploy/manifests/crd/kustomization.yaml index 88e133c5..d7789cc1 100644 --- a/adaptors/ble/deploy/manifests/crd/kustomization.yaml +++ b/adaptors/ble/deploy/manifests/crd/kustomization.yaml @@ -1,5 +1,8 @@ commonAnnotations: devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/device-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' + devices.edge.cattle.io/icon: "https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/ble-logo.svg" + devices.edge.cattle.io/description: "BLE stands for Bluetooth Low Energy (Bluetooth LE, , and marketed as Bluetooth Smart). BLE is a form of wireless communication designed for short-range communications. The BLE adaptor defines the device configuration and the attributes of connected BLE device." resources: - base/devices.edge.cattle.io_bluetoothdevices.yaml diff --git a/adaptors/ble/deploy/manifests/workload/daemonset.yaml b/adaptors/ble/deploy/manifests/workload/daemonset.yaml index b7be0bce..56615837 100644 --- a/adaptors/ble/deploy/manifests/workload/daemonset.yaml +++ b/adaptors/ble/deploy/manifests/workload/daemonset.yaml @@ -16,11 +16,12 @@ spec: labels: app.kubernetes.io/component: "adaptor" spec: - nodeSelector: - beta.kubernetes.io/os: linux + hostNetwork: true containers: - name: octopus image: rancher/octopus-adaptor-ble:latest + securityContext: + privileged: true volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets diff --git a/adaptors/dummy/deploy/e2e/all_in_one.yaml b/adaptors/dummy/deploy/e2e/all_in_one.yaml index 2d332ca4..3e086879 100644 --- a/adaptors/dummy/deploy/e2e/all_in_one.yaml +++ b/adaptors/dummy/deploy/e2e/all_in_one.yaml @@ -3,7 +3,10 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.5 + devices.edge.cattle.io/description: dummy device description + devices.edge.cattle.io/device-property: "" devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/icon: "" creationTimestamp: null labels: app.kubernetes.io/name: octopus-adaptor-dummy @@ -165,8 +168,6 @@ spec: volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets - nodeSelector: - beta.kubernetes.io/os: linux volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/adaptors/dummy/deploy/manifests/crd/kustomization.yaml b/adaptors/dummy/deploy/manifests/crd/kustomization.yaml index 8fe2735c..fb344587 100644 --- a/adaptors/dummy/deploy/manifests/crd/kustomization.yaml +++ b/adaptors/dummy/deploy/manifests/crd/kustomization.yaml @@ -1,5 +1,8 @@ commonAnnotations: devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/device-property: "" # specify device property to display in the UI + devices.edge.cattle.io/icon: "" # specify display icon for the UI + devices.edge.cattle.io/description: "dummy device description" resources: - base/devices.edge.cattle.io_dummydevices.yaml diff --git a/adaptors/dummy/deploy/manifests/workload/daemonset.yaml b/adaptors/dummy/deploy/manifests/workload/daemonset.yaml index 79481535..a24ef912 100644 --- a/adaptors/dummy/deploy/manifests/workload/daemonset.yaml +++ b/adaptors/dummy/deploy/manifests/workload/daemonset.yaml @@ -16,8 +16,6 @@ spec: labels: app.kubernetes.io/component: "adaptor" spec: - nodeSelector: - beta.kubernetes.io/os: linux containers: - name: octopus image: rancher/octopus-adaptor-dummy:latest diff --git a/adaptors/modbus/deploy/e2e/all_in_one.yaml b/adaptors/modbus/deploy/e2e/all_in_one.yaml index f2f9654d..ba4753c9 100644 --- a/adaptors/modbus/deploy/e2e/all_in_one.yaml +++ b/adaptors/modbus/deploy/e2e/all_in_one.yaml @@ -3,7 +3,14 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.5 + devices.edge.cattle.io/description: Modbus is a communication protocol developed + by Modicon system. In short, it is a method for transmitting information between + electronic devices through a serial line. The Modbus protocol is a master-slave + architecture protocol. The Modbus adapter can be called a Modbus master station + and is responsible for connecting and collecting information from Modbus slave + stations (i.e, devices). devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/icon: https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/modbus.svg devices.edge.cattle.io/status-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' creationTimestamp: null labels: @@ -290,8 +297,6 @@ spec: name: sockets - mountPath: /dev name: dev - nodeSelector: - beta.kubernetes.io/os: linux volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/adaptors/modbus/deploy/manifests/crd/kustomization.yaml b/adaptors/modbus/deploy/manifests/crd/kustomization.yaml index a5c77626..dae4db36 100644 --- a/adaptors/modbus/deploy/manifests/crd/kustomization.yaml +++ b/adaptors/modbus/deploy/manifests/crd/kustomization.yaml @@ -1,6 +1,8 @@ commonAnnotations: devices.edge.cattle.io/enable: "true" devices.edge.cattle.io/status-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' + devices.edge.cattle.io/icon: "https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/modbus.svg" + devices.edge.cattle.io/description: "Modbus is a communication protocol developed by Modicon system. In short, it is a method for transmitting information between electronic devices through a serial line. The Modbus protocol is a master-slave architecture protocol. The Modbus adapter can be called a Modbus master station and is responsible for connecting and collecting information from Modbus slave stations (i.e, devices)." resources: - base/devices.edge.cattle.io_modbusdevices.yaml diff --git a/adaptors/modbus/deploy/manifests/workload/daemonset.yaml b/adaptors/modbus/deploy/manifests/workload/daemonset.yaml index 6a8efc36..bb83ce93 100644 --- a/adaptors/modbus/deploy/manifests/workload/daemonset.yaml +++ b/adaptors/modbus/deploy/manifests/workload/daemonset.yaml @@ -16,8 +16,6 @@ spec: labels: app.kubernetes.io/component: "adaptor" spec: - nodeSelector: - beta.kubernetes.io/os: linux containers: - name: octopus image: rancher/octopus-adaptor-modbus:latest diff --git a/adaptors/opcua/deploy/e2e/all_in_one.yaml b/adaptors/opcua/deploy/e2e/all_in_one.yaml index da9398c8..408c8294 100644 --- a/adaptors/opcua/deploy/e2e/all_in_one.yaml +++ b/adaptors/opcua/deploy/e2e/all_in_one.yaml @@ -3,7 +3,12 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.5 + devices.edge.cattle.io/description: OPC Unified Architecture (OPC UA) is a machine + to machine communication protocol for industrial automation developed by the + OPC Foundation. OPC-UA adaptor focus on communicating with industrial equipment + and systems for data collection and control. devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/icon: https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/opc-ua.svg devices.edge.cattle.io/status-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' creationTimestamp: null labels: diff --git a/adaptors/opcua/deploy/manifests/crd/kustomization.yaml b/adaptors/opcua/deploy/manifests/crd/kustomization.yaml index b0907e11..e271f43e 100644 --- a/adaptors/opcua/deploy/manifests/crd/kustomization.yaml +++ b/adaptors/opcua/deploy/manifests/crd/kustomization.yaml @@ -1,6 +1,8 @@ commonAnnotations: devices.edge.cattle.io/enable: "true" devices.edge.cattle.io/status-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' + devices.edge.cattle.io/icon: "https://octopus-assets.oss-cn-beijing.aliyuncs.com/adaptor-icons/opc-ua.svg" + devices.edge.cattle.io/description: "OPC Unified Architecture (OPC UA) is a machine to machine communication protocol for industrial automation developed by the OPC Foundation. OPC-UA adaptor focus on communicating with industrial equipment and systems for data collection and control." resources: - base/devices.edge.cattle.io_opcuadevices.yaml diff --git a/deploy/e2e/all_in_one.yaml b/deploy/e2e/all_in_one.yaml index 341fdae0..00d223ff 100644 --- a/deploy/e2e/all_in_one.yaml +++ b/deploy/e2e/all_in_one.yaml @@ -445,6 +445,16 @@ spec: app.kubernetes.io/name: octopus app.kubernetes.io/version: master spec: + affinity: + nodeAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - preference: + matchExpressions: + - key: beta.kubernetes.io/os + operator: In + values: + - linux + weight: 1 containers: - args: - brain @@ -460,8 +470,6 @@ spec: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true - nodeSelector: - beta.kubernetes.io/os: linux terminationGracePeriodSeconds: 10 volumes: - name: cert @@ -504,8 +512,6 @@ spec: volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets - nodeSelector: - beta.kubernetes.io/os: linux volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/deploy/e2e/all_in_one_without_webhook.yaml b/deploy/e2e/all_in_one_without_webhook.yaml index be1a614c..0f03723a 100644 --- a/deploy/e2e/all_in_one_without_webhook.yaml +++ b/deploy/e2e/all_in_one_without_webhook.yaml @@ -345,6 +345,16 @@ spec: app.kubernetes.io/name: octopus app.kubernetes.io/version: master spec: + affinity: + nodeAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - preference: + matchExpressions: + - key: beta.kubernetes.io/os + operator: In + values: + - linux + weight: 1 containers: - args: - brain @@ -352,8 +362,6 @@ spec: - --disable-admission-webhook image: rancher/octopus:master name: octopus - nodeSelector: - beta.kubernetes.io/os: linux terminationGracePeriodSeconds: 10 --- apiVersion: apps/v1 @@ -391,8 +399,6 @@ spec: volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets - nodeSelector: - beta.kubernetes.io/os: linux volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/deploy/manifests/workload/daemonset.yaml b/deploy/manifests/workload/daemonset.yaml index 004bc107..57870e8b 100644 --- a/deploy/manifests/workload/daemonset.yaml +++ b/deploy/manifests/workload/daemonset.yaml @@ -16,8 +16,6 @@ spec: labels: app.kubernetes.io/component: "limb" spec: - nodeSelector: - beta.kubernetes.io/os: linux containers: - name: octopus args: diff --git a/deploy/manifests/workload/deployment.yaml b/deploy/manifests/workload/deployment.yaml index e424a118..be56977c 100644 --- a/deploy/manifests/workload/deployment.yaml +++ b/deploy/manifests/workload/deployment.yaml @@ -17,8 +17,16 @@ spec: labels: app.kubernetes.io/component: "brain" spec: - nodeSelector: - beta.kubernetes.io/os: linux + affinity: + nodeAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + preference: + matchExpressions: + - key: beta.kubernetes.io/os + operator: In + values: + - linux containers: - name: octopus args: diff --git a/template/adaptor/api/v1alpha1/zz_generated.deepcopy.go b/template/adaptor/api/v1alpha1/zz_generated.deepcopy.go index cb65ce3d..dd2c8434 100644 --- a/template/adaptor/api/v1alpha1/zz_generated.deepcopy.go +++ b/template/adaptor/api/v1alpha1/zz_generated.deepcopy.go @@ -64,7 +64,7 @@ func (in *TemplateDeviceList) DeepCopyInto(out *TemplateDeviceList) { } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DummyDeviceList. +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateDeviceList. func (in *TemplateDeviceList) DeepCopy() *TemplateDeviceList { if in == nil { return nil diff --git a/template/adaptor/deploy/e2e/all_in_one.yaml b/template/adaptor/deploy/e2e/all_in_one.yaml index 9db48a15..7fdc926e 100644 --- a/template/adaptor/deploy/e2e/all_in_one.yaml +++ b/template/adaptor/deploy/e2e/all_in_one.yaml @@ -3,11 +3,14 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.2.5 + devices.edge.cattle.io/description: "" + devices.edge.cattle.io/device-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/icon: "" creationTimestamp: null labels: app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master name: templatedevices.devices.edge.cattle.io spec: group: devices.edge.cattle.io @@ -60,7 +63,7 @@ metadata: labels: app.kubernetes.io/component: rbac app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master name: octopus-adaptor-template-manager-role rules: - apiGroups: @@ -90,7 +93,7 @@ metadata: labels: app.kubernetes.io/component: rbac app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master name: octopus-adaptor-template-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io @@ -107,7 +110,7 @@ metadata: labels: app.kubernetes.io/component: adaptor app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master name: octopus-adaptor-template-adaptor namespace: octopus-system spec: @@ -115,22 +118,20 @@ spec: matchLabels: app.kubernetes.io/component: adaptor app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master template: metadata: labels: app.kubernetes.io/component: adaptor app.kubernetes.io/name: octopus-adaptor-template - app.kubernetes.io/version: 0.0.1 + app.kubernetes.io/version: master spec: containers: - - image: rancher/octopus-adaptor-template:latest + - image: rancher/octopus-adaptor-template:master name: octopus volumeMounts: - mountPath: /var/lib/octopus/adaptors/ name: sockets - nodeSelector: - beta.kubernetes.io/os: linux volumes: - hostPath: path: /var/lib/octopus/adaptors/ diff --git a/template/adaptor/deploy/manifests/crd/kustomization.yaml b/template/adaptor/deploy/manifests/crd/kustomization.yaml index 6d21def0..a76e3cc9 100644 --- a/template/adaptor/deploy/manifests/crd/kustomization.yaml +++ b/template/adaptor/deploy/manifests/crd/kustomization.yaml @@ -1,5 +1,8 @@ commonAnnotations: - devices.edge.cattle.io/enable: "true" + devices.edge.cattle.io/enable: "true" # this is required + devices.edge.cattle.io/device-property: '{"name":"string","dataType":"string","value":"string","updatedAt":"date"}' # specify device property to be displayed in the UI + devices.edge.cattle.io/icon: "" # define the icon for the Edge UI + devices.edge.cattle.io/description: "" # add your custom device adaptor description resources: - base/devices.edge.cattle.io_templatedevices.yaml diff --git a/template/adaptor/deploy/manifests/workload/daemonset.yaml b/template/adaptor/deploy/manifests/workload/daemonset.yaml index d126ddad..6f37c784 100644 --- a/template/adaptor/deploy/manifests/workload/daemonset.yaml +++ b/template/adaptor/deploy/manifests/workload/daemonset.yaml @@ -16,8 +16,6 @@ spec: labels: app.kubernetes.io/component: "adaptor" spec: - nodeSelector: - beta.kubernetes.io/os: linux containers: - name: octopus image: rancher/octopus-adaptor-template:latest