From ef6f4728751b9fd8085483e3ec5425102147dcee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Durmu=C5=9F?= Date: Wed, 6 Nov 2024 19:35:39 +0300 Subject: [PATCH 1/5] datasance-pot iofog-operator created --- operators/datasance-pot-operator/ci.yaml | 1 + ...-iofog-operator.clusterserviceversion.yaml | 543 ++++++++++++++++++ .../datasance-pot-operator_clusterrole.yaml | 47 ++ .../datasance-pot-operator_deployment.yaml | 39 ++ .../datasance-pot-operator_rbac.yaml | 105 ++++ .../datasance.com-controlplanes_crd.yaml | 311 ++++++++++ .../v3.4.6/metadata/annotations.yaml | 13 + 7 files changed, 1059 insertions(+) create mode 100644 operators/datasance-pot-operator/ci.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml create mode 100644 operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml diff --git a/operators/datasance-pot-operator/ci.yaml b/operators/datasance-pot-operator/ci.yaml new file mode 100644 index 000000000..233e0a1b4 --- /dev/null +++ b/operators/datasance-pot-operator/ci.yaml @@ -0,0 +1 @@ +cert_project_id: 6724b1da4591f9fe90c6e0ee \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml new file mode 100644 index 000000000..36501064b --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml @@ -0,0 +1,543 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "datasance.com/v3", + "kind": "ControlPlane", + "metadata": { + "name": "pot" + }, + "spec": { + "replicas": { + "controller": 2 + }, + "database": { + "provider": "postgres", + "user": "user", + "host": "postgre.host", + "port": 5432, + "password": "password", + "databaseName": "dbname" + }, + "auth": { + "url": "auth.url", + "realm": "realm", + "realmKey": "realmKey", + "ssl": "none", + "controllerClient": "controllerClient", + "controllerSecret": "controllerClientSecret", + "viewerClient": "viewerClient" + }, + "images": { + "pullSecret": "pullsecret", + "controller": "ghcr.io/datasance/controller:latest", + "portManager": "ghcr.io/datasance/port-manager:latest", + "proxy": "ghcr.io/datasance/proxu:latest", + "router": "ghcr.io/datasance/router:latest" + }, + "services": { + "controller": { + "type": "LoadBalancer", + "annotations": + "service.beta.kubernetes.io/azure-load-balancer-internal: false" + }, + "proxy": { + "type": "LoadBalancer", + "annotations": + "service.beta.kubernetes.io/azure-load-balancer-internal: false" + }, + "router": { + "type": "LoadBalancer", + "annotations": + "service.beta.kubernetes.io/azure-load-balancer-internal: false" + } + }, + "controller": { + "ecnViewerUrl": "pot.demo.datasance.com", + "https": true, + "secretName": "secretName" + }, + "ingresses": { + "controller": { + "annotations": + "cert-manager.io/cluster-issuer: letsencrypt", + "ingressClassName": "nginx", + "host": "pot.demo.datasance.com", + "secretName": "secretName" + }, + "router": { + "address": "pot.demo.datasance.com", + "messagePort": 5672, + "interiorPort": 55672, + "edgePort": 45672 + }, + "httpProxy": { + "address": "pot.demo.datasance.com" + }, + "tcpProxy": { + "address": "pot.demo.datasance.com" + } + } + }, + "status": { + "conditions": [ + { + "lastTransitionTime": "2022-04-10T22:44:09Z", + "message": "", + "reason": "initial_status", + "status": "True", + "type": "deploying" + } + ] + } + } + ] + capabilities: Basic Install + createdAt: "2024-11-04T20:45:43Z" + operators.operatorframework.io/builder: operator-sdk-v1.37.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 + name: iofog-operator.v3.4.6 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - kind: ControlPlane + name: controlplanes.datasance.com + version: v3 + description: Datasance PoT supported ioFog ControlPlane CRD for managing container workloads on Edge deviceScanFrequency + SpecDescrriptors: + - description: "Number of replicas for the controller" + displayName: "Controller Replicas" + path: "replicas.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:podCount" + - description: "Database configuration for the Control Plane" + displayName: "Database" + path: "database" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Database" + subDescriptors: + - description: "Database provider (e.g., MySQL, PostgreSQL)" + displayName: "Provider" + path: "database.provider" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database user name" + displayName: "User" + path: "database.user" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database host address" + displayName: "Host" + path: "database.host" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database port number" + displayName: "Port" + path: "database.port" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Password for the database user" + displayName: "Password" + path: "database.password" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Name of the database" + displayName: "Database Name" + path: "database.databaseName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Keycloak Authentication configuration for the Control Plane" + displayName: "Authentication" + path: "auth" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Authentication" + subDescriptors: + - description: "URL of the Keycloak authentication server" + displayName: "Auth Server URL" + path: "auth.url" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Authentication realm name" + displayName: "Realm" + path: "auth.realm" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Key for the authentication realm" + displayName: "Realm Key" + path: "auth.realmKey" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "SSL config for authentication server (e.g., All Request, External Request, None)" + displayName: "Require SSL" + path: "auth.ssl" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Keycloak Client ID for the controller in the authentication server" + displayName: "Controller Client ID" + path: "auth.controllerClient" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Keycloak Secret key for the controller client" + displayName: "Controller Client Secret" + path: "auth.controllerSecret" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Keycloak Client ID for the viewer in the authentication server" + displayName: "Viewer Client ID" + path: "auth.viewerClient" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Configuration for images used in the Control Plane deployment" + displayName: "Images Configuration" + path: "images" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Images" + subDescriptors: + - description: "Secret for pulling images from a private container registry" + displayName: "Image Pull Secret" + path: "images.pullSecret" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Image for the Control Plane controller component" + displayName: "Controller Image" + path: "images.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" + - description: "Image for the Port Manager component" + displayName: "Port Manager Image" + path: "images.portManager" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" + - description: "Image for the Proxy component" + displayName: "Proxy Image" + path: "images.proxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" + - description: "Image for the Router component" + displayName: "Router Image" + path: "images.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" + - description: "Configuration for services used in the Control Plane deployment" + displayName: "Services Configuration" + path: "services" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Services" + subDescriptors: + - description: "Service configuration for the controller component" + displayName: "Controller Service" + path: "services.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ControllerService" + subDescriptors: + - description: "The service type for the controller component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Controller Service Type" + path: "services.controller.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the controller service (e.g., for external load balancer configuration)" + displayName: "Controller Service Annotations" + path: "services.controller.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Service configuration for the proxy component" + displayName: "Proxy Service" + path: "services.proxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ProxyService" + subDescriptors: + - description: "The service type for the proxy component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Proxy Service Type" + path: "services.proxy.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the proxy service (e.g., for load balancer or ingress settings)" + displayName: "Proxy Service Annotations" + path: "services.proxy.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Service configuration for the router component" + displayName: "Router Service" + path: "services.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:RouterService" + subDescriptors: + - description: "The service type for the router component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Router Service Type" + path: "services.router.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the router service (e.g., for configuration of networking features)" + displayName: "Router Service Annotations" + path: "services.router.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Configuration specific to the Controller component in the Control Plane" + displayName: "Controller Configuration" + path: "controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller" + subDescriptors: + - description: "Directory path for storing PID files related to the controller's processes" + displayName: "PID Base Directory" + path: "controller.pidBaseDir" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Port for the ECN Viewer interface, allowing external access to view the Edge Compute Network" + displayName: "ECN Viewer Port" + path: "controller.ecnViewerPort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "URL for accessing the ECN Viewer, if applicable" + displayName: "ECN Viewer URL" + path: "controller.ecnViewerUrl" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:url" + - description: "Specifies if HTTPS should be enabled for the controller's external endpoints" + displayName: "Enable HTTPS" + path: "controller.https" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" + - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication with the controller" + displayName: "SSL Secret Name" + path: "controller.secretName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Configuration specific to the Ingress resources for the Control Plane" + displayName: "Ingress Configuration" + path: "ingresses" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Ingress" + subDescriptors: + - description: "Ingress configuration for the Controller component" + displayName: "Controller Ingress" + path: "ingresses.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller Ingress" + subDescriptors: + - description: "Annotations to attach to the Controller Ingress resource, if any" + displayName: "Controller Ingress Annotations" + path: "ingresses.controller.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Name of the ingress class to use for the Controller Ingress resource" + displayName: "Controller Ingress Class Name" + path: "ingresses.controller.ingressClassName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Hostname for the Controller Ingress resource" + displayName: "Controller Host" + path: "ingresses.controller.host" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication for the Controller Ingress" + displayName: "Controller SSL Secret Name" + path: "ingresses.controller.secretName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Router Ingress configuration for internal message routing" + displayName: "Router Ingress" + path: "ingresses.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Router Ingress" + subDescriptors: + - description: "Address for accessing the router ingress" + displayName: "Router Ingress Address" + path: "ingresses.router.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Message port for AMQP messaging" + displayName: "Router Message Port" + path: "ingresses.router.messagePort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Interior port for internal cluster communication" + displayName: "Router Interior Port" + path: "ingresses.router.interiorPort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Edge port for external communication to edge devices" + displayName: "Router Edge Port" + path: "ingresses.router.edgePort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Ingress configuration for HTTP Proxy access" + displayName: "HTTP Proxy Ingress" + path: "ingresses.httpProxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:HTTP Proxy Ingress" + subDescriptors: + - description: "Address for accessing the HTTP Proxy ingress" + displayName: "HTTP Proxy Address" + path: "ingresses.httpProxy.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Ingress configuration for TCP Proxy access" + displayName: "TCP Proxy Ingress" + path: "ingresses.tcpProxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:TCP Proxy Ingress" + subDescriptors: + - description: "Address for accessing the TCP Proxy ingress" + displayName: "TCP Proxy Address" + path: "ingresses.tcpProxy.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + description: ioFog Control Plane on Kubernetes + displayName: iofog-operator + icon: + - base64data: "" + mediatype: "" + install: + spec: + deployments: + - label: + name: iofog-operator + name: iofog-operator + spec: + replicas: 1 + selector: + matchLabels: + name: iofog-operator + strategy: {} + template: + metadata: + labels: + name: iofog-operator + spec: + containers: + - args: + - --enable-leader-election + command: + - iofog-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OPERATOR_NAME + value: iofog-operator + image: ghcr.io/datasance/operator:3.4.6 + imagePullPolicy: Always + name: iofog-operator + resources: {} + serviceAccountName: iofog-operator + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - '*' + - apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingresses/status + verbs: + - '*' + - apiGroups: + - datasance.com + resources: + - applications + - apps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - datasance.com + resources: + - applications/status + - apps/finalizers + - applications/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - datasance.com + resources: + - controlplanes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - datasance.com + resources: + - controlplanes/status + - controlplanes/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - apps + resources: + - deployments + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods + - configmaps + - configmaps/status + - events + - serviceaccounts + - services + - persistentvolumeclaims + - secrets + verbs: + - '*' + serviceAccountName: iofog-operator + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - iofog + - datasance + - pot + links: + - name: Datasance PoT // Iofog Operator + url: https://docs.datasance.com + maturity: stable + minKubeVersion: 1.18.0 + provider: + name: Datasance + version: 3.4.6 diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml new file mode 100644 index 000000000..7e5f235d7 --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml @@ -0,0 +1,47 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: manager-role +rules: +- apiGroups: + - datasance.com + resources: + - applications + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasance.com + resources: + - applications/status + verbs: + - get + - patch + - update +- apiGroups: + - datasance.com + resources: + - controlplanes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasance.com + resources: + - controlplanes/status + verbs: + - get + - patch + - update diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml new file mode 100644 index 000000000..c6e49f8ea --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml @@ -0,0 +1,39 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: iofog-operator + labels: + name: iofog-operator +spec: + selector: + matchLabels: + name: iofog-operator + replicas: 1 + template: + metadata: + labels: + name: iofog-operator + spec: + serviceAccountName: iofog-operator + containers: + - command: + - iofog-operator + args: + - --enable-leader-election + image: ghcr.io/datasance/operator:3.4.6 + imagePullPolicy: Always + name: iofog-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OPERATOR_NAME + value: iofog-operator + terminationGracePeriodSeconds: 10 diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml new file mode 100644 index 000000000..8bf10e81d --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml @@ -0,0 +1,105 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: iofog-operator +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: iofog-operator +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: iofog-operator +subjects: +- kind: ServiceAccount + name: iofog-operator +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: iofog-operator +rules: +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - '*' +- apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - '*' +- apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingresses/status + verbs: + - '*' +- apiGroups: + - datasance.com + resources: + - applications + - apps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasance.com + resources: + - applications/status + - apps/finalizers + - applications/finalizers + verbs: + - get + - patch + - update +- apiGroups: + - datasance.com + resources: + - controlplanes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasance.com + resources: + - controlplanes/status + - controlplanes/finalizers + verbs: + - get + - patch + - update +- apiGroups: + - apps + resources: + - deployments + verbs: + - '*' +- apiGroups: + - "" + resources: + - pods + - configmaps + - configmaps/status + - events + - serviceaccounts + - services + - persistentvolumeclaims + - secrets + verbs: + - '*' diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml new file mode 100644 index 000000000..ec4328c86 --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml @@ -0,0 +1,311 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null + name: controlplanes.datasance.com +spec: + group: datasance.com + names: + kind: ControlPlane + listKind: ControlPlaneList + plural: controlplanes + singular: controlplane + scope: Namespaced + versions: + - name: v3 + schema: + openAPIV3Schema: + description: ControlPlane is the Schema for the controlplanes API. + 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: ControlPlaneSpec defines the desired state of ControlPlane. + properties: + auth: + description: |- + INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + Important: Run "operator-sdk generate k8s" to regenerate code after modifying this file + Add custom validation using kubebuilder tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html + Auth contains Keycloak Client Configuration of Controller and ECN Viewer + properties: + controllerClient: + type: string + controllerSecret: + type: string + realm: + type: string + realmKey: + type: string + ssl: + type: string + url: + type: string + viewerClient: + type: string + required: + - controllerClient + - controllerSecret + - realm + - realmKey + - ssl + - url + - viewerClient + type: object + controller: + description: Controller contains runtime configuration for ioFog Controller + properties: + ecn: + type: string + ecnViewerPort: + type: integer + ecnViewerUrl: + type: string + https: + type: boolean + pidBaseDir: + type: string + portAllocatorHost: + type: string + portProvider: + type: string + proxyBrokerToken: + type: string + proxyBrokerUrl: + type: string + secretName: + type: string + type: object + database: + description: Database for ioFog Controller + properties: + databaseName: + type: string + host: + type: string + password: + type: string + port: + type: integer + provider: + type: string + user: + type: string + required: + - databaseName + - host + - password + - port + - provider + - user + type: object + images: + description: Images specifies which containers to run for each component + of the ControlPlane + properties: + controller: + type: string + portManager: + type: string + proxy: + type: string + pullSecret: + type: string + router: + type: string + type: object + ingresses: + description: Ingresses allow Router and Port Manager to configure + endpoint addresses correctly + properties: + controller: + properties: + annotations: + additionalProperties: + type: string + type: object + host: + type: string + ingressClassName: + type: string + secretName: + type: string + type: object + httpProxy: + properties: + address: + type: string + type: object + router: + properties: + address: + type: string + edgePort: + type: integer + interiorPort: + type: integer + messagePort: + type: integer + type: object + tcpProxy: + properties: + address: + type: string + type: object + type: object + replicas: + description: Replicas of ioFog Controller should be 1 unless an external + DB is configured + properties: + controller: + format: int32 + type: integer + type: object + services: + description: Services should be LoadBalancer unless Ingress is being + configured + properties: + controller: + properties: + address: + type: string + annotations: + additionalProperties: + type: string + type: object + type: + type: string + type: object + proxy: + properties: + address: + type: string + annotations: + additionalProperties: + type: string + type: object + type: + type: string + type: object + router: + properties: + address: + type: string + annotations: + additionalProperties: + type: string + type: object + type: + type: string + type: object + type: object + required: + - auth + - database + type: object + status: + description: ControlPlaneStatus defines the observed state of ControlPlane. + properties: + conditions: + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml new file mode 100644 index 000000000..b62da6120 --- /dev/null +++ b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml @@ -0,0 +1,13 @@ +--- +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: iofog-operator + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.37.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4 + # Minimum Openshift version annotation + com.redhat.openshift.versions: "v4.12-v4.17" From 550d450105c31a317b3f3161e218d6574949d583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Durmu=C5=9F?= Date: Wed, 6 Nov 2024 19:55:55 +0300 Subject: [PATCH 2/5] yaml-lint fixed --- .../datasance-iofog-operator.clusterserviceversion.yaml | 2 +- .../v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml | 2 +- .../v3.4.6/manifests/datasance-pot-operator_deployment.yaml | 2 +- .../v3.4.6/manifests/datasance-pot-operator_rbac.yaml | 2 +- .../v3.4.6/manifests/datasance.com-controlplanes_crd.yaml | 2 +- .../datasance-pot-operator/v3.4.6/metadata/annotations.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml index 36501064b..86e72b266 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml @@ -540,4 +540,4 @@ spec: minKubeVersion: 1.18.0 provider: name: Datasance - version: 3.4.6 + version: 3.4.6 \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml index 7e5f235d7..8476212ba 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml @@ -44,4 +44,4 @@ rules: verbs: - get - patch - - update + - update \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml index c6e49f8ea..d9ac0dbad 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml @@ -36,4 +36,4 @@ spec: fieldPath: metadata.name - name: OPERATOR_NAME value: iofog-operator - terminationGracePeriodSeconds: 10 + terminationGracePeriodSeconds: 10 \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml index 8bf10e81d..80849d56f 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml @@ -102,4 +102,4 @@ rules: - persistentvolumeclaims - secrets verbs: - - '*' + - '*' \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml index ec4328c86..d8d8703f7 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml @@ -308,4 +308,4 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] + storedVersions: [] \ No newline at end of file diff --git a/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml index b62da6120..63179ecf3 100644 --- a/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml +++ b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml @@ -10,4 +10,4 @@ annotations: operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4 # Minimum Openshift version annotation - com.redhat.openshift.versions: "v4.12-v4.17" + com.redhat.openshift.versions: "v4.12-v4.17" \ No newline at end of file From 5ae7fb682266afa0ed935c79b1804b5c1b68fe93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Durmu=C5=9F?= Date: Thu, 7 Nov 2024 00:47:36 +0300 Subject: [PATCH 3/5] yaml lint fixed --- ...-iofog-operator.clusterserviceversion.yaml | 477 +++++++++--------- 1 file changed, 232 insertions(+), 245 deletions(-) diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml index 86e72b266..d46828b88 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml @@ -108,8 +108,8 @@ spec: - kind: ControlPlane name: controlplanes.datasance.com version: v3 - description: Datasance PoT supported ioFog ControlPlane CRD for managing container workloads on Edge deviceScanFrequency - SpecDescrriptors: + description: Datasance PoT supported ioFog ControlPlane CRD for managing container workloads on Edge device + specDescriptors: - description: "Number of replicas for the controller" displayName: "Controller Replicas" path: "replicas.controller" @@ -120,274 +120,261 @@ spec: path: "database" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Database" - subDescriptors: - - description: "Database provider (e.g., MySQL, PostgreSQL)" - displayName: "Provider" - path: "database.provider" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database user name" - displayName: "User" - path: "database.user" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database host address" - displayName: "Host" - path: "database.host" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database port number" - displayName: "Port" - path: "database.port" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Password for the database user" - displayName: "Password" - path: "database.password" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Name of the database" - displayName: "Database Name" - path: "database.databaseName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database provider (e.g., MySQL, PostgreSQL)" + displayName: "Provider" + path: "database.provider" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database user name" + displayName: "User" + path: "database.user" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database host address" + displayName: "Host" + path: "database.host" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Database port number" + displayName: "Port" + path: "database.port" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Password for the database user" + displayName: "Password" + path: "database.password" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Name of the database" + displayName: "Database Name" + path: "database.databaseName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" - description: "Keycloak Authentication configuration for the Control Plane" displayName: "Authentication" path: "auth" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Authentication" - subDescriptors: - - description: "URL of the Keycloak authentication server" - displayName: "Auth Server URL" - path: "auth.url" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Authentication realm name" - displayName: "Realm" - path: "auth.realm" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Key for the authentication realm" - displayName: "Realm Key" - path: "auth.realmKey" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "SSL config for authentication server (e.g., All Request, External Request, None)" - displayName: "Require SSL" - path: "auth.ssl" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Keycloak Client ID for the controller in the authentication server" - displayName: "Controller Client ID" - path: "auth.controllerClient" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Keycloak Secret key for the controller client" - displayName: "Controller Client Secret" - path: "auth.controllerSecret" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Keycloak Client ID for the viewer in the authentication server" - displayName: "Viewer Client ID" - path: "auth.viewerClient" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "URL of the Keycloak authentication server" + displayName: "Auth Server URL" + path: "auth.url" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Authentication realm name" + displayName: "Realm" + path: "auth.realm" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Key for the authentication realm" + displayName: "Realm Key" + path: "auth.realmKey" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "SSL config for authentication server (e.g., All Request, External Request, None)" + displayName: "Require SSL" + path: "auth.ssl" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Keycloak Client ID for the controller in the authentication server" + displayName: "Controller Client ID" + path: "auth.controllerClient" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Keycloak Secret key for the controller client" + displayName: "Controller Client Secret" + path: "auth.controllerSecret" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Keycloak Client ID for the viewer in the authentication server" + displayName: "Viewer Client ID" + path: "auth.viewerClient" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" - description: "Configuration for images used in the Control Plane deployment" displayName: "Images Configuration" path: "images" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Images" - subDescriptors: - - description: "Secret for pulling images from a private container registry" - displayName: "Image Pull Secret" - path: "images.pullSecret" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Image for the Control Plane controller component" - displayName: "Controller Image" - path: "images.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" - - description: "Image for the Port Manager component" - displayName: "Port Manager Image" - path: "images.portManager" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" - - description: "Image for the Proxy component" - displayName: "Proxy Image" - path: "images.proxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" - - description: "Image for the Router component" - displayName: "Router Image" - path: "images.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:imagePullSpec" + - description: "Secret for pulling images from a private container registry" + displayName: "Image Pull Secret" + path: "images.pullSecret" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Image for the Control Plane controller component" + displayName: "Controller Image" + path: "images.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Image for the Port Manager component" + displayName: "Port Manager Image" + path: "images.portManager" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Image for the Proxy component" + displayName: "Proxy Image" + path: "images.proxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Image for the Router component" + displayName: "Router Image" + path: "images.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" - description: "Configuration for services used in the Control Plane deployment" displayName: "Services Configuration" path: "services" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Services" - subDescriptors: - - description: "Service configuration for the controller component" - displayName: "Controller Service" - path: "services.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ControllerService" - subDescriptors: - - description: "The service type for the controller component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Controller Service Type" - path: "services.controller.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the controller service (e.g., for external load balancer configuration)" - displayName: "Controller Service Annotations" - path: "services.controller.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" - - description: "Service configuration for the proxy component" - displayName: "Proxy Service" - path: "services.proxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ProxyService" - subDescriptors: - - description: "The service type for the proxy component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Proxy Service Type" - path: "services.proxy.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the proxy service (e.g., for load balancer or ingress settings)" - displayName: "Proxy Service Annotations" - path: "services.proxy.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" - - description: "Service configuration for the router component" - displayName: "Router Service" - path: "services.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:RouterService" - subDescriptors: - - description: "The service type for the router component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Router Service Type" - path: "services.router.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the router service (e.g., for configuration of networking features)" - displayName: "Router Service Annotations" - path: "services.router.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Service configuration for the controller component" + displayName: "Controller Service" + path: "services.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ControllerService" + - description: "The service type for the controller component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Controller Service Type" + path: "services.controller.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the controller service (e.g., for external load balancer configuration)" + displayName: "Controller Service Annotations" + path: "services.controller.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Service configuration for the proxy component" + displayName: "Proxy Service" + path: "services.proxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ProxyService" + - description: "The service type for the proxy component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Proxy Service Type" + path: "services.proxy.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the proxy service (e.g., for load balancer or ingress settings)" + displayName: "Proxy Service Annotations" + path: "services.proxy.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" + - description: "Service configuration for the router component" + displayName: "Router Service" + path: "services.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:RouterService" + - description: "The service type for the router component (e.g., ClusterIP, NodePort, LoadBalancer)" + displayName: "Router Service Type" + path: "services.router.type" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:serviceType" + - description: "Annotations for the router service (e.g., for configuration of networking features)" + displayName: "Router Service Annotations" + path: "services.router.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:annotations" - description: "Configuration specific to the Controller component in the Control Plane" displayName: "Controller Configuration" path: "controller" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller" - subDescriptors: - - description: "Directory path for storing PID files related to the controller's processes" - displayName: "PID Base Directory" - path: "controller.pidBaseDir" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Port for the ECN Viewer interface, allowing external access to view the Edge Compute Network" - displayName: "ECN Viewer Port" - path: "controller.ecnViewerPort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "URL for accessing the ECN Viewer, if applicable" - displayName: "ECN Viewer URL" - path: "controller.ecnViewerUrl" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:url" - - description: "Specifies if HTTPS should be enabled for the controller's external endpoints" - displayName: "Enable HTTPS" - path: "controller.https" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" - - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication with the controller" - displayName: "SSL Secret Name" - path: "controller.secretName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" + - description: "Directory path for storing PID files related to the controller's processes" + displayName: "PID Base Directory" + path: "controller.pidBaseDir" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Port for the ECN Viewer interface, allowing external access to view the Edge Compute Network" + displayName: "ECN Viewer Port" + path: "controller.ecnViewerPort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "URL for accessing the ECN Viewer, if applicable" + displayName: "ECN Viewer URL" + path: "controller.ecnViewerUrl" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:url" + - description: "Specifies if HTTPS should be enabled for the controller's external endpoints" + displayName: "Enable HTTPS" + path: "controller.https" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" + - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication with the controller" + displayName: "SSL Secret Name" + path: "controller.secretName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" - description: "Configuration specific to the Ingress resources for the Control Plane" displayName: "Ingress Configuration" path: "ingresses" x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Ingress" - subDescriptors: - - description: "Ingress configuration for the Controller component" - displayName: "Controller Ingress" - path: "ingresses.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller Ingress" - subDescriptors: - - description: "Annotations to attach to the Controller Ingress resource, if any" - displayName: "Controller Ingress Annotations" - path: "ingresses.controller.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Name of the ingress class to use for the Controller Ingress resource" - displayName: "Controller Ingress Class Name" - path: "ingresses.controller.ingressClassName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Hostname for the Controller Ingress resource" - displayName: "Controller Host" - path: "ingresses.controller.host" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication for the Controller Ingress" - displayName: "Controller SSL Secret Name" - path: "ingresses.controller.secretName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Router Ingress configuration for internal message routing" - displayName: "Router Ingress" - path: "ingresses.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Router Ingress" - subDescriptors: - - description: "Address for accessing the router ingress" - displayName: "Router Ingress Address" - path: "ingresses.router.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Message port for AMQP messaging" - displayName: "Router Message Port" - path: "ingresses.router.messagePort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Interior port for internal cluster communication" - displayName: "Router Interior Port" - path: "ingresses.router.interiorPort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Edge port for external communication to edge devices" - displayName: "Router Edge Port" - path: "ingresses.router.edgePort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Ingress configuration for HTTP Proxy access" - displayName: "HTTP Proxy Ingress" - path: "ingresses.httpProxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:HTTP Proxy Ingress" - subDescriptors: - - description: "Address for accessing the HTTP Proxy ingress" - displayName: "HTTP Proxy Address" - path: "ingresses.httpProxy.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Ingress configuration for TCP Proxy access" - displayName: "TCP Proxy Ingress" - path: "ingresses.tcpProxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:TCP Proxy Ingress" - subDescriptors: - - description: "Address for accessing the TCP Proxy ingress" - displayName: "TCP Proxy Address" - path: "ingresses.tcpProxy.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Ingress configuration for the Controller component" + displayName: "Controller Ingress" + path: "ingresses.controller" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller Ingress" + - description: "Annotations to attach to the Controller Ingress resource, if any" + displayName: "Controller Ingress Annotations" + path: "ingresses.controller.annotations" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Name of the ingress class to use for the Controller Ingress resource" + displayName: "Controller Ingress Class Name" + path: "ingresses.controller.ingressClassName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Hostname for the Controller Ingress resource" + displayName: "Controller Host" + path: "ingresses.controller.host" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication for the Controller Ingress" + displayName: "Controller SSL Secret Name" + path: "ingresses.controller.secretName" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Router Ingress configuration for internal message routing" + displayName: "Router Ingress" + path: "ingresses.router" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Router Ingress" + - description: "Address for accessing the router ingress" + displayName: "Router Ingress Address" + path: "ingresses.router.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Message port for AMQP messaging" + displayName: "Router Message Port" + path: "ingresses.router.messagePort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Interior port for internal cluster communication" + displayName: "Router Interior Port" + path: "ingresses.router.interiorPort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Edge port for external communication to edge devices" + displayName: "Router Edge Port" + path: "ingresses.router.edgePort" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:number" + - description: "Ingress configuration for HTTP Proxy access" + displayName: "HTTP Proxy Ingress" + path: "ingresses.httpProxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:HTTP Proxy Ingress" + - description: "Address for accessing the HTTP Proxy ingress" + displayName: "HTTP Proxy Address" + path: "ingresses.httpProxy.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" + - description: "Ingress configuration for TCP Proxy access" + displayName: "TCP Proxy Ingress" + path: "ingresses.tcpProxy" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:TCP Proxy Ingress" + - description: "Address for accessing the TCP Proxy ingress" + displayName: "TCP Proxy Address" + path: "ingresses.tcpProxy.address" + x-descriptors: + - "urn:alm:descriptor:com.tectonic.ui:text" description: ioFog Control Plane on Kubernetes displayName: iofog-operator icon: From ec3b97a8f3a6bffafe01ebac2271bec545905e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Durmu=C5=9F?= Date: Thu, 7 Nov 2024 01:17:56 +0300 Subject: [PATCH 4/5] yaml lint fixed --- ...-iofog-operator.clusterserviceversion.yaml | 831 +++++++++--------- 1 file changed, 424 insertions(+), 407 deletions(-) diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml index d46828b88..3daac95c0 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml @@ -1,8 +1,9 @@ +--- apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: - alm-examples: |- + alm-examples: >- [ { "apiVersion": "datasance.com/v3", @@ -96,7 +97,7 @@ metadata: } ] capabilities: Basic Install - createdAt: "2024-11-04T20:45:43Z" + createdAt: 2024-11-04T20:45:43Z operators.operatorframework.io/builder: operator-sdk-v1.37.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 name: iofog-operator.v3.4.6 @@ -105,424 +106,440 @@ spec: apiservicedefinitions: {} customresourcedefinitions: owned: - - kind: ControlPlane - name: controlplanes.datasance.com - version: v3 - description: Datasance PoT supported ioFog ControlPlane CRD for managing container workloads on Edge device - specDescriptors: - - description: "Number of replicas for the controller" - displayName: "Controller Replicas" - path: "replicas.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:podCount" - - description: "Database configuration for the Control Plane" - displayName: "Database" - path: "database" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Database" - - description: "Database provider (e.g., MySQL, PostgreSQL)" - displayName: "Provider" - path: "database.provider" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database user name" - displayName: "User" - path: "database.user" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database host address" - displayName: "Host" - path: "database.host" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Database port number" - displayName: "Port" - path: "database.port" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Password for the database user" - displayName: "Password" - path: "database.password" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Name of the database" - displayName: "Database Name" - path: "database.databaseName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Keycloak Authentication configuration for the Control Plane" - displayName: "Authentication" - path: "auth" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Authentication" - - description: "URL of the Keycloak authentication server" - displayName: "Auth Server URL" - path: "auth.url" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Authentication realm name" - displayName: "Realm" - path: "auth.realm" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Key for the authentication realm" - displayName: "Realm Key" - path: "auth.realmKey" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "SSL config for authentication server (e.g., All Request, External Request, None)" - displayName: "Require SSL" - path: "auth.ssl" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Keycloak Client ID for the controller in the authentication server" - displayName: "Controller Client ID" - path: "auth.controllerClient" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Keycloak Secret key for the controller client" - displayName: "Controller Client Secret" - path: "auth.controllerSecret" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:password" - - description: "Keycloak Client ID for the viewer in the authentication server" - displayName: "Viewer Client ID" - path: "auth.viewerClient" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Configuration for images used in the Control Plane deployment" - displayName: "Images Configuration" - path: "images" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Images" - - description: "Secret for pulling images from a private container registry" - displayName: "Image Pull Secret" - path: "images.pullSecret" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Image for the Control Plane controller component" - displayName: "Controller Image" - path: "images.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Image for the Port Manager component" - displayName: "Port Manager Image" - path: "images.portManager" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Image for the Proxy component" - displayName: "Proxy Image" - path: "images.proxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Image for the Router component" - displayName: "Router Image" - path: "images.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Configuration for services used in the Control Plane deployment" - displayName: "Services Configuration" - path: "services" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Services" - - description: "Service configuration for the controller component" - displayName: "Controller Service" - path: "services.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ControllerService" - - description: "The service type for the controller component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Controller Service Type" - path: "services.controller.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the controller service (e.g., for external load balancer configuration)" - displayName: "Controller Service Annotations" - path: "services.controller.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" - - description: "Service configuration for the proxy component" - displayName: "Proxy Service" - path: "services.proxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:ProxyService" - - description: "The service type for the proxy component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Proxy Service Type" - path: "services.proxy.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the proxy service (e.g., for load balancer or ingress settings)" - displayName: "Proxy Service Annotations" - path: "services.proxy.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" - - description: "Service configuration for the router component" - displayName: "Router Service" - path: "services.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:RouterService" - - description: "The service type for the router component (e.g., ClusterIP, NodePort, LoadBalancer)" - displayName: "Router Service Type" - path: "services.router.type" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:serviceType" - - description: "Annotations for the router service (e.g., for configuration of networking features)" - displayName: "Router Service Annotations" - path: "services.router.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:annotations" - - description: "Configuration specific to the Controller component in the Control Plane" - displayName: "Controller Configuration" - path: "controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller" - - description: "Directory path for storing PID files related to the controller's processes" - displayName: "PID Base Directory" - path: "controller.pidBaseDir" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Port for the ECN Viewer interface, allowing external access to view the Edge Compute Network" - displayName: "ECN Viewer Port" - path: "controller.ecnViewerPort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "URL for accessing the ECN Viewer, if applicable" - displayName: "ECN Viewer URL" - path: "controller.ecnViewerUrl" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:url" - - description: "Specifies if HTTPS should be enabled for the controller's external endpoints" - displayName: "Enable HTTPS" - path: "controller.https" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" - - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication with the controller" - displayName: "SSL Secret Name" - path: "controller.secretName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Configuration specific to the Ingress resources for the Control Plane" - displayName: "Ingress Configuration" - path: "ingresses" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Ingress" - - description: "Ingress configuration for the Controller component" - displayName: "Controller Ingress" - path: "ingresses.controller" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller Ingress" - - description: "Annotations to attach to the Controller Ingress resource, if any" - displayName: "Controller Ingress Annotations" - path: "ingresses.controller.annotations" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Name of the ingress class to use for the Controller Ingress resource" - displayName: "Controller Ingress Class Name" - path: "ingresses.controller.ingressClassName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Hostname for the Controller Ingress resource" - displayName: "Controller Host" - path: "ingresses.controller.host" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Name of the Kubernetes Secret containing SSL/TLS certificates for secure communication for the Controller Ingress" - displayName: "Controller SSL Secret Name" - path: "ingresses.controller.secretName" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Router Ingress configuration for internal message routing" - displayName: "Router Ingress" - path: "ingresses.router" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:Router Ingress" - - description: "Address for accessing the router ingress" - displayName: "Router Ingress Address" - path: "ingresses.router.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Message port for AMQP messaging" - displayName: "Router Message Port" - path: "ingresses.router.messagePort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Interior port for internal cluster communication" - displayName: "Router Interior Port" - path: "ingresses.router.interiorPort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Edge port for external communication to edge devices" - displayName: "Router Edge Port" - path: "ingresses.router.edgePort" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:number" - - description: "Ingress configuration for HTTP Proxy access" - displayName: "HTTP Proxy Ingress" - path: "ingresses.httpProxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:HTTP Proxy Ingress" - - description: "Address for accessing the HTTP Proxy ingress" - displayName: "HTTP Proxy Address" - path: "ingresses.httpProxy.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" - - description: "Ingress configuration for TCP Proxy access" - displayName: "TCP Proxy Ingress" - path: "ingresses.tcpProxy" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:fieldGroup:TCP Proxy Ingress" - - description: "Address for accessing the TCP Proxy ingress" - displayName: "TCP Proxy Address" - path: "ingresses.tcpProxy.address" - x-descriptors: - - "urn:alm:descriptor:com.tectonic.ui:text" + - kind: ControlPlane + name: controlplanes.datasance.com + version: v3 + description: Datasance PoT supported ioFog ControlPlane CRD for managing + container workloads on Edge device + specDescriptors: + - description: Number of replicas for the controller + displayName: Controller Replicas + path: replicas.controller + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: Database configuration for the Control Plane + displayName: Database + path: database + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Database + - description: Database provider (e.g., MySQL, PostgreSQL) + displayName: Provider + path: database.provider + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Database user name + displayName: User + path: database.user + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Database host address + displayName: Host + path: database.host + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Database port number + displayName: Port + path: database.port + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: Password for the database user + displayName: Password + path: database.password + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + - description: Name of the database + displayName: Database Name + path: database.databaseName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Keycloak Authentication configuration for the Control Plane + displayName: Authentication + path: auth + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Authentication + - description: URL of the Keycloak authentication server + displayName: Auth Server URL + path: auth.url + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Authentication realm name + displayName: Realm + path: auth.realm + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Key for the authentication realm + displayName: Realm Key + path: auth.realmKey + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + - description: SSL config for authentication server (e.g., All Request, External + Request, None) + displayName: Require SSL + path: auth.ssl + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Keycloak Client ID for the controller in the authentication server + displayName: Controller Client ID + path: auth.controllerClient + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Keycloak Secret key for the controller client + displayName: Controller Client Secret + path: auth.controllerSecret + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:password + - description: Keycloak Client ID for the viewer in the authentication server + displayName: Viewer Client ID + path: auth.viewerClient + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Configuration for images used in the Control Plane deployment + displayName: Images Configuration + path: images + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Images + - description: Secret for pulling images from a private container registry + displayName: Image Pull Secret + path: images.pullSecret + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret + - description: Image for the Control Plane controller component + displayName: Controller Image + path: images.controller + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Image for the Port Manager component + displayName: Port Manager Image + path: images.portManager + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Image for the Proxy component + displayName: Proxy Image + path: images.proxy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Image for the Router component + displayName: Router Image + path: images.router + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Configuration for services used in the Control Plane deployment + displayName: Services Configuration + path: services + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Services + - description: Service configuration for the controller component + displayName: Controller Service + path: services.controller + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ControllerService + - description: The service type for the controller component (e.g., ClusterIP, + NodePort, LoadBalancer) + displayName: Controller Service Type + path: services.controller.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:ServiceType + - description: Annotations for the controller service (e.g., for external load + balancer configuration) + displayName: Controller Service Annotations + path: services.controller.annotations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Service configuration for the proxy component + displayName: Proxy Service + path: services.proxy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:ProxyService + - description: The service type for the proxy component (e.g., ClusterIP, + NodePort, LoadBalancer) + displayName: Proxy Service Type + path: services.proxy.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:ServiceType + - description: Annotations for the proxy service (e.g., for load balancer or + ingress settings) + displayName: Proxy Service Annotations + path: services.proxy.annotations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Service configuration for the router component + displayName: Router Service + path: services.router + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:RouterService + - description: The service type for the router component (e.g., ClusterIP, + NodePort, LoadBalancer) + displayName: Router Service Type + path: services.router.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:ServiceType + - description: Annotations for the router service (e.g., for configuration of + networking features) + displayName: Router Service Annotations + path: services.router.annotations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Configuration specific to the Controller component in the Control + Plane + displayName: Controller Configuration + path: controller + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller + - description: Directory path for storing PID files related to the controller's + processes + displayName: PID Base Directory + path: controller.pidBaseDir + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Port for the ECN Viewer interface, allowing external access to view + the Edge Compute Network + displayName: ECN Viewer Port + path: controller.ecnViewerPort + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: URL for accessing the ECN Viewer, if applicable + displayName: ECN Viewer URL + path: controller.ecnViewerUrl + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:url + - description: Specifies if HTTPS should be enabled for the controller's external + endpoints + displayName: Enable HTTPS + path: controller.https + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: Name of the Kubernetes Secret containing SSL/TLS certificates for + secure communication with the controller + displayName: SSL Secret Name + path: controller.secretName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret + - description: Configuration specific to the Ingress resources for the Control + Plane + displayName: Ingress Configuration + path: ingresses + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Ingress + - description: Ingress configuration for the Controller component + displayName: Controller Ingress + path: ingresses.controller + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Controller Ingress + - description: Annotations to attach to the Controller Ingress resource, if any + displayName: Controller Ingress Annotations + path: ingresses.controller.annotations + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Name of the ingress class to use for the Controller Ingress + resource + displayName: Controller Ingress Class Name + path: ingresses.controller.ingressClassName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Hostname for the Controller Ingress resource + displayName: Controller Host + path: ingresses.controller.host + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Name of the Kubernetes Secret containing SSL/TLS certificates for + secure communication for the Controller Ingress + displayName: Controller SSL Secret Name + path: ingresses.controller.secretName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret + - description: Router Ingress configuration for internal message routing + displayName: Router Ingress + path: ingresses.router + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:Router Ingress + - description: Address for accessing the router ingress + displayName: Router Ingress Address + path: ingresses.router.address + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Message port for AMQP messaging + displayName: Router Message Port + path: ingresses.router.messagePort + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: Interior port for internal cluster communication + displayName: Router Interior Port + path: ingresses.router.interiorPort + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: Edge port for external communication to edge devices + displayName: Router Edge Port + path: ingresses.router.edgePort + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: Ingress configuration for HTTP Proxy access + displayName: HTTP Proxy Ingress + path: ingresses.httpProxy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:HTTP Proxy Ingress + - description: Address for accessing the HTTP Proxy ingress + displayName: HTTP Proxy Address + path: ingresses.httpProxy.address + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Ingress configuration for TCP Proxy access + displayName: TCP Proxy Ingress + path: ingresses.tcpProxy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldGroup:TCP Proxy Ingress + - description: Address for accessing the TCP Proxy ingress + displayName: TCP Proxy Address + path: ingresses.tcpProxy.address + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text description: ioFog Control Plane on Kubernetes displayName: iofog-operator icon: - - base64data: "" - mediatype: "" + - base64data: "" + mediatype: "" install: spec: deployments: - - label: + - label: + name: iofog-operator name: iofog-operator - name: iofog-operator - spec: - replicas: 1 - selector: - matchLabels: - name: iofog-operator - strategy: {} - template: - metadata: - labels: + spec: + replicas: 1 + selector: + matchLabels: name: iofog-operator - spec: - containers: - - args: - - --enable-leader-election - command: - - iofog-operator - env: - - name: WATCH_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.annotations['olm.targetNamespaces'] - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: OPERATOR_NAME - value: iofog-operator - image: ghcr.io/datasance/operator:3.4.6 - imagePullPolicy: Always - name: iofog-operator - resources: {} - serviceAccountName: iofog-operator - terminationGracePeriodSeconds: 10 + strategy: {} + template: + metadata: + labels: + name: iofog-operator + spec: + containers: + - args: + - --enable-leader-election + command: + - iofog-operator + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OPERATOR_NAME + value: iofog-operator + image: ghcr.io/datasance/operator:3.4.6 + imagePullPolicy: Always + name: iofog-operator + resources: {} + serviceAccountName: iofog-operator + terminationGracePeriodSeconds: 10 permissions: - - rules: - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - '*' - - apiGroups: - - rbac.authorization.k8s.io - resources: - - roles - - rolebindings - verbs: - - '*' - - apiGroups: - - networking.k8s.io - resources: - - ingresses - - ingresses/status - verbs: - - '*' - - apiGroups: - - datasance.com - resources: - - applications - - apps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - datasance.com - resources: - - applications/status - - apps/finalizers - - applications/finalizers - verbs: - - get - - patch - - update - - apiGroups: - - datasance.com - resources: - - controlplanes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - datasance.com - resources: - - controlplanes/status - - controlplanes/finalizers - verbs: - - get - - patch - - update - - apiGroups: - - apps - resources: - - deployments - verbs: - - '*' - - apiGroups: - - "" - resources: - - pods - - configmaps - - configmaps/status - - events - - serviceaccounts - - services - - persistentvolumeclaims - - secrets - verbs: - - '*' - serviceAccountName: iofog-operator + - rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - "*" + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + - rolebindings + verbs: + - "*" + - apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingresses/status + verbs: + - "*" + - apiGroups: + - datasance.com + resources: + - applications + - apps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - datasance.com + resources: + - applications/status + - apps/finalizers + - applications/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - datasance.com + resources: + - controlplanes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - datasance.com + resources: + - controlplanes/status + - controlplanes/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - apps + resources: + - deployments + verbs: + - "*" + - apiGroups: + - "" + resources: + - pods + - configmaps + - configmaps/status + - events + - serviceaccounts + - services + - persistentvolumeclaims + - secrets + verbs: + - "*" + serviceAccountName: iofog-operator strategy: deployment installModes: - - supported: false - type: OwnNamespace - - supported: false - type: SingleNamespace - - supported: false - type: MultiNamespace - - supported: true - type: AllNamespaces + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces keywords: - - iofog - - datasance - - pot + - iofog + - datasance + - pot links: - - name: Datasance PoT // Iofog Operator - url: https://docs.datasance.com + - name: Datasance PoT // Iofog Operator + url: https://docs.datasance.com maturity: stable minKubeVersion: 1.18.0 provider: From 2b686dc36c1749670b86e7bbb38b519933fbab66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emirhan=20Durmu=C5=9F?= Date: Thu, 7 Nov 2024 01:25:34 +0300 Subject: [PATCH 5/5] yaml lint fixed --- .../datasance-iofog-operator.clusterserviceversion.yaml | 8 ++++---- .../manifests/datasance-pot-operator_clusterrole.yaml | 2 +- .../manifests/datasance-pot-operator_deployment.yaml | 3 ++- .../v3.4.6/manifests/datasance-pot-operator_rbac.yaml | 3 ++- .../v3.4.6/manifests/datasance.com-controlplanes_crd.yaml | 3 ++- .../v3.4.6/metadata/annotations.yaml | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml index 3daac95c0..1e3af748e 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-iofog-operator.clusterserviceversion.yaml @@ -42,17 +42,17 @@ metadata: "services": { "controller": { "type": "LoadBalancer", - "annotations": + "annotations": "service.beta.kubernetes.io/azure-load-balancer-internal: false" }, "proxy": { "type": "LoadBalancer", - "annotations": + "annotations": "service.beta.kubernetes.io/azure-load-balancer-internal: false" }, "router": { "type": "LoadBalancer", - "annotations": + "annotations": "service.beta.kubernetes.io/azure-load-balancer-internal: false" } }, @@ -544,4 +544,4 @@ spec: minKubeVersion: 1.18.0 provider: name: Datasance - version: 3.4.6 \ No newline at end of file + version: 3.4.6 diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml index 8476212ba..7e5f235d7 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_clusterrole.yaml @@ -44,4 +44,4 @@ rules: verbs: - get - patch - - update \ No newline at end of file + - update diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml index d9ac0dbad..a677e610c 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_deployment.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apps/v1 kind: Deployment metadata: @@ -36,4 +37,4 @@ spec: fieldPath: metadata.name - name: OPERATOR_NAME value: iofog-operator - terminationGracePeriodSeconds: 10 \ No newline at end of file + terminationGracePeriodSeconds: 10 diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml index 80849d56f..21cfde598 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance-pot-operator_rbac.yaml @@ -1,3 +1,4 @@ +--- apiVersion: v1 kind: ServiceAccount metadata: @@ -102,4 +103,4 @@ rules: - persistentvolumeclaims - secrets verbs: - - '*' \ No newline at end of file + - '*' diff --git a/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml index d8d8703f7..0951e60d6 100644 --- a/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml +++ b/operators/datasance-pot-operator/v3.4.6/manifests/datasance.com-controlplanes_crd.yaml @@ -1,3 +1,4 @@ +--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -308,4 +309,4 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] \ No newline at end of file + storedVersions: [] diff --git a/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml index 63179ecf3..b62da6120 100644 --- a/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml +++ b/operators/datasance-pot-operator/v3.4.6/metadata/annotations.yaml @@ -10,4 +10,4 @@ annotations: operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4 # Minimum Openshift version annotation - com.redhat.openshift.versions: "v4.12-v4.17" \ No newline at end of file + com.redhat.openshift.versions: "v4.12-v4.17"