diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/Dockerfile b/hawkbit-extended-runtimes/hawkbit-update-server-azure/Dockerfile deleted file mode 100644 index 1c4f23e..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM mcr.microsoft.com/java/jre-headless:8u265-zulu-alpine - -ARG JAR_FILE=hawkbit-update-server-azure-0.3.0-SNAPSHOT.jar - -ENV HAWKBIT_HOME=/opt/hawkbit - -EXPOSE 8080 - -VOLUME "$HAWKBIT_HOME/data" - -WORKDIR $HAWKBIT_HOME -ENTRYPOINT ["java","-jar","hawkbit-update-server.jar","-Xmx768m -Xmx768m -XX:MaxMetaspaceSize=250m -XX:MetaspaceSize=250m -Xss300K -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+HeapDumpOnOutOfMemoryError"] - -# Add the service itself -ADD target/$JAR_FILE hawkbit-update-server.jar diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/README.md b/hawkbit-extended-runtimes/hawkbit-update-server-azure/README.md deleted file mode 100644 index b72ff3a..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/README.md +++ /dev/null @@ -1,171 +0,0 @@ -# hawkBit update server with Azure extensions - -Reference runtime that packages all the extensions together in a ready to go deployment for Microsoft Azure. - -The runtime includes: - -- hawkBit DDI, management API and management UI -- [Azure SQL Database](https://azure.microsoft.com/en-us/services/sql-database/) for the metadata repository -- [Azure Storage](https://azure.microsoft.com/en-us/services/storage/) for software artifact binary persistence - -## Quick start - -### Prerequisites - -- An [Azure subscription](https://azure.microsoft.com/en-us/get-started/). -- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) installed to setup the infrastructure. -- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) and [helm](https://helm.sh/docs/using_helm/#installing-helm) installed to deploy hawkBit into [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes). -- [Docker](https://www.docker.com) installed - -### Build hawkBit Azure extension pack - -```bash -git clone https://github.com/eclipse/hawkbit-extensions.git -cd hawkbit-extensions -mvn clean install -``` - -### Package and push the docker image - -In this example we expect that you have a [Azure Container Registry (ACR)](https://azure.microsoft.com/en-us/services/container-registry/), are logged in and have the credentials extracted. However, pushing your image to Docker Hub works as well. - -```bash -acr_resourcegroupname=YOUR_ACR_RG -acr_registry_name=YOUR_ACR_NAME -acr_login_server=$acr_registry_name.azurecr.io -cd hawkbit-extended-runtimes/hawkbit-update-server-azure -docker build -t $acr_login_server/hawkbit-update-server-azure:latest . -docker push $acr_login_server/hawkbit-update-server-azure:latest -``` - -### Deploy hawkBit to your Azure environment - -First we are going to setup the basic Azure infrastructure: [AKS](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes), [SQL Database](https://azure.microsoft.com/en-us/services/sql-database/) and [Storage](https://azure.microsoft.com/en-us/services/storage/). - -As described [here](https://docs.microsoft.com/en-gb/azure/aks/kubernetes-service-principal) we will create an explicit service principal first. You can add roles to this principal later, e.g. to access a [Azure Container Registry (ACR)](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro). - -```bash -service_principal=`az ad sp create-for-rbac --name http://hawkBitServicePrincipal --skip-assignment --output tsv` -app_id_principal=`echo $service_principal|cut -f1 -d ' '` -password_principal=`echo $service_principal|cut -f4 -d ' '` -object_id_principal=`az ad sp show --id $app_id_principal --query objectId --output tsv` -acr_id_access_registry=`az acr show --resource-group $acr_resourcegroupname --name $acr_registry_name --query "id" --output tsv` -``` - -Note: it might take a few seconds until the principal is available to the cluster in the following steps. So maybe time to get up and stretch a bit. - -```bash -az role assignment create --assignee $app_id_principal --scope $acr_id_access_registry --role Reader - -resourcegroup_name=hawkbit -az group create --name $resourcegroup_name --location "westeurope" -``` - -With the next command we will use the provided [Azure Resource Manager (ARM)](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview) templates to setup the AKS cluster. This might take a while. So maybe time to try out this meditation thing :smile: - -```bash -cd deployment -unique_solution_prefix=myprefix -az deployment group create --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --template-file arm/hawkBitInfrastructureDeployment.json --parameters uniqueSolutionPrefix=$unique_solution_prefix servicePrincipalObjectId=$object_id_principal servicePrincipalClientId=$app_id_principal servicePrincipalClientSecret=$password_principal -``` - -Retrieve secrets from the deployment: - -```bash -aks_cluster_name=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.aksClusterName.value -o tsv` -ip_address=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.publicIPAddress.value -o tsv` -public_fqdn=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.publicIPFQDN.value -o tsv` -db_password=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.dbAdministratorLoginPassword.value -o tsv` -db_user=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.dbAdministratorLogin.value -o tsv` -db_url=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.dbUri.value -o tsv` -storage_url=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.storageConnectionString.value -o tsv` -eh_connection=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.ehNamespaceConnectionString.value -o tsv` -eh_ns=`az deployment group show --name hawkBitBasicInfrastructure --resource-group $resourcegroup_name --query properties.outputs.ehNamespaceName.value -o tsv` -``` - -Now you can set your cluster in `kubectl`. - -```bash -az aks get-credentials --resource-group $resourcegroup_name --name $aks_cluster_name -``` - -Next deploy helm on your cluster. It will take a moment until tiller is booted up. So maybe time again to get up and stretch a bit. - -```bash -kubectl apply -f helm/helm-rbac.yaml -``` - -Next we prepare the k8s environment and our chart for deployment. - -```bash -k8s_namespace=hawkbitns -kubectl create namespace $k8s_namespace -``` - -Deploy Nginx as Kubernetes Ingress controller. - -```bash -helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx -helm repo update -helm upgrade hawkbit-ingress ingress-nginx/ingress-nginx \ - --namespace $k8s_namespace \ - --set controller.service.loadBalancerIP=$ip_address \ - --set controller.replicaCount=2 \ - --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"=$resourcegroup_name \ - --install -``` - -Deploy cert manager for [Let's Encrypt](https://letsencrypt.org) certificates. - -```bash -kubectl label namespace $k8s_namespace cert-manager.io/disable-validation=true -helm repo add jetstack https://charts.jetstack.io -helm repo update - -helm upgrade hawkbit-cert-manager jetstack/cert-manager \ - --namespace $k8s_namespace \ - --set installCRDs=true \ - --version v0.16.1 --install -``` - -Now install hawkBit: - -```bash -helm upgrade hawkbit helm/hawkbit \ - --install \ - --wait \ - --namespace $k8s_namespace \ - --set image.repository=$acr_login_server/hawkbit-update-server-azure \ - --set ingress.hosts={$public_fqdn} \ - --set db.password=$db_password \ - --set db.username=$db_user \ - --set db.url=$db_url \ - --set storage.url=$storage_url \ - --set eventHubs.connectionString=$eh_connection \ - --set eventHubs.namespace=$eh_ns \ - --set insights.enabled=false -``` - -Now check your deployment. - -```bash -> kubectl get pods -n $k8s_namespace -NAME READY STATUS RESTARTS AGE -hawkbit-5ddf667cc8-hdlj2 1/1 Running 0 62s -hawkbit-5ddf667cc8-m9szw 1/1 Running 0 62s -hawkbit-ingress-nginx-ingress-controller-57658b4744-9gwmh 1/1 Running 0 46m -hawkbit-ingress-nginx-ingress-controller-57658b4744-nhmnn 1/1 Running 0 46m -hawkbit-ingress-nginx-ingress-default-backend-7c5b8cf46-kxg8p 1/1 Running 0 46m -``` - -Now you can open the management UI with the defined DNS name. However, it will take some time until the application is booted up and the certificates are issued. - -In case it does not open up you can take a look at the logs using `kubectl logs`. - -### Cleanup your resources - -If you no longer need any of the resources you created in this quick start, you can execute the az group delete command to remove the resource group and all resources it contains. This command deletes the running container as well. - -```bash -az group delete --name $resourcegroupname -``` diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/hawkBitInfrastructureDeployment.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/hawkBitInfrastructureDeployment.json deleted file mode 100644 index ec8db03..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/hawkBitInfrastructureDeployment.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "uniqueSolutionPrefix": { - "type": "string", - "metadata": { - "description": "Prefix used for resource names. Should be unique as this will also be used for domain names." - } - }, - "aks": { - "type": "bool", - "defaultValue": true, - "metadata": { - "description": "AKS deployment enabled." - } - }, - "aksClusterName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional AKS cluster name. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "vnetName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional virtual network name. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "aksSubnetName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional subnet name for AKS nodes and pods. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "dnsLabelPrefix": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional DNS Label for the Public IP that will be used by Twin Reflector Proxy service. Otherwise calculated from uniqueSolutionPrefix. Must be lowercase. It should match with the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$ or it will raise an error." - } - }, - "publicIPAddressName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional IP address name that will be used by Twin Reflector Proxy service. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Location for all resources." - } - }, - "servicePrincipalObjectId": { - "type": "securestring", - "metadata": { - "description": "Object ID against which the Network Contributor roles will be assigned on the subnet" - } - }, - "servicePrincipalClientId": { - "metadata": { - "description": "Client ID (used by cloudprovider)" - }, - "type": "securestring" - }, - "servicePrincipalClientSecret": { - "metadata": { - "description": "The Service Principal Client Secret." - }, - "type": "securestring" - }, - "storageAccountType": { - "type": "string", - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Storage SKU." - } - }, - "storageAccountName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional Storage account name. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "dbServerName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional Azure DB server name. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "dbName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional Azure DB name. Otherwise calculated from uniqueSolutionPrefix." - } - }, - "namespaceName": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional EventHub namespace name. Otherwise calculated from uniqueSolutionPrefix." - } - } - }, - "variables": { - "storageAccountName": "[if(empty(parameters('storageAccountName')),concat(parameters('uniqueSolutionPrefix'),'hawkbitstorage'),parameters('storageAccountName'))]", - "dbServerName": "[if(empty(parameters('dbServerName')),concat(parameters('uniqueSolutionPrefix'),'hawkbitsqlserver'),parameters('dbServerName'))]", - "dbName": "[if(empty(parameters('dbName')),concat(parameters('uniqueSolutionPrefix'),'hawkbitdb'),parameters('dbName'))]", - "namespaceName": "[if(empty(parameters('namespaceName')),concat(parameters('uniqueSolutionPrefix'),'hawkbitns'),parameters('namespaceName'))]", - "dnsLabelPrefix": "[if(empty(parameters('dnsLabelPrefix')),concat(parameters('uniqueSolutionPrefix'),'hawkbit'),parameters('dnsLabelPrefix'))]", - "publicIPAddressName": "[if(empty(parameters('publicIPAddressName')),concat(parameters('uniqueSolutionPrefix'),'hawkbitpip'),parameters('publicIPAddressName'))]", - "aksClusterName": "[if(empty(parameters('aksClusterName')),concat(parameters('uniqueSolutionPrefix'), 'hawkbitaks'),parameters('aksClusterName'))]", - "vnetName": "[if(empty(parameters('vnetName')),concat(parameters('uniqueSolutionPrefix'), 'hawkbitvnet'),parameters('vnetName'))]", - "aksSubnetName": "[if(empty(parameters('aksSubnetName')),concat(parameters('uniqueSolutionPrefix'), 'hawkbitakssubnet'),parameters('aksSubnetName'))]" - }, - "resources": [{ - "name": "hawkBitStorageDeployment", - "type": "Microsoft.Resources/deployments", - "apiVersion": "2018-05-01", - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'hawkbitVnetDeployment')]" - ], - "properties": { - "mode": "Incremental", - "templateLink": { - "uri": "https://raw.githubusercontent.com/eclipse/hawkbit-extensions/master/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/storageDeploy.json" - }, - "parameters": { - "storageAccountName": { - "value": "[variables('storageAccountName')]" - }, - "storageAccountType": { - "value": "[parameters('storageAccountType')]" - }, - "location": { - "value": "[parameters('location')]" - }, - "virtualNetworkName": { - "value": "[variables('vnetName')]" - }, - "subnetName": { - "value": "[variables('aksSubnetName')]" - }, - "virtualNetworkResourceGroup": { - "value": "[resourceGroup().name]" - } - } - } - }, { - "name": "hawkBitSQLServerDeployment", - "type": "Microsoft.Resources/deployments", - "apiVersion": "2018-05-01", - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'hawkbitVnetDeployment')]" - ], - "properties": { - "mode": "Incremental", - "templateLink": { - "uri": "https://raw.githubusercontent.com/eclipse/hawkbit-extensions/master/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/sqlServerDeploy.json" - }, - "parameters": { - "dbServerName": { - "value": "[variables('dbServerName')]" - }, - "dbName": { - "value": "[variables('dbName')]" - }, - "location": { - "value": "[parameters('location')]" - }, - "virtualNetworkName": { - "value": "[variables('vnetName')]" - }, - "subnetName": { - "value": "[variables('aksSubnetName')]" - }, - "virtualNetworkResourceGroup": { - "value": "[resourceGroup().name]" - } - } - } - }, { - "name": "hawkBitEventHubsDeployment", - "type": "Microsoft.Resources/deployments", - "apiVersion": "2018-05-01", - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'hawkbitVnetDeployment')]" - ], - "properties": { - "mode": "Incremental", - "templateLink": { - "uri": "https://raw.githubusercontent.com/eclipse/hawkbit-extensions/master/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/ehNamespaceDeploy.json" - }, - "parameters": { - "namespaceName": { - "value": "[variables('namespaceName')]" - }, - "location": { - "value": "[parameters('location')]" - }, - "virtualNetworkName": { - "value": "[variables('vnetName')]" - }, - "subnetName": { - "value": "[variables('aksSubnetName')]" - }, - "virtualNetworkResourceGroup": { - "value": "[resourceGroup().name]" - } - } - } - }, - { - "name": "hawkbitVnetDeployment", - "type": "Microsoft.Resources/deployments", - "apiVersion": "2018-05-01", - "properties": { - "mode": "Incremental", - "templateLink": { - "uri": "https://raw.githubusercontent.com/eclipse/hawkbit-extensions/master/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/vnetDeploy.json" - }, - "parameters": { - "vnetName": { - "value": "[variables('vnetName')]" - }, - "aksSubnetName": { - "value": "[variables('aksSubnetName')]" - }, - "location": { - "value": "[parameters('location')]" - } - } - } - }, - { - "condition": "[parameters('aks')]", - "name": "hawkBitKubernetesDeployment", - "type": "Microsoft.Resources/deployments", - "apiVersion": "2018-05-01", - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'hawkbitVnetDeployment')]" - ], - "properties": { - "mode": "Incremental", - "templateLink": { - "uri": "https://raw.githubusercontent.com/eclipse/hawkbit-extensions/master/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/kubernetesDeploy.json" - }, - "parameters": { - "clusterName": { - "value": "[variables('aksClusterName')]" - }, - "location": { - "value": "[parameters('location')]" - }, - "dnsPrefix": { - "value": "[parameters('uniqueSolutionPrefix')]" - }, - "servicePrincipalObjectId": { - "value": "[parameters('servicePrincipalObjectId')]" - }, - "servicePrincipalClientId": { - "value": "[parameters('servicePrincipalClientId')]" - }, - "servicePrincipalClientSecret": { - "value": "[parameters('servicePrincipalClientSecret')]" - }, - "virtualNetworkName": { - "value": "[variables('vnetName')]" - }, - "subnetName": { - "value": "[variables('aksSubnetName')]" - }, - "virtualNetworkResourceGroup": { - "value": "[resourceGroup().name]" - }, - "publicIPAddressName": { - "value": "[variables('publicIPAddressName')]" - }, - "dnsLabelPrefix": { - "value": "[variables('dnsLabelPrefix')]" - } - } - } - } - ], - "outputs": { - "aksClusterName": { - "type": "string", - "value": "[variables('aksClusterName')]" - }, - "vnetName": { - "type": "string", - "value": "[variables('vnetName')]" - }, - "publicIPAddressName": { - "type": "string", - "value": "[variables('publicIPAddressName')]" - }, - "publicIPAddress": { - "type": "string", - "value": "[reference('hawkBitKubernetesDeployment').outputs.ipAddress.value]" - }, - "publicIPFQDN": { - "type": "string", - "value": "[reference('hawkBitKubernetesDeployment').outputs.ipFQDN.value]" - }, - "dbAdministratorLogin": { - "type": "string", - "value": "[reference('hawkBitSQLServerDeployment').outputs.administratorLogin.value]" - }, - "dbAdministratorLoginPassword": { - "type": "string", - "value": "[reference('hawkBitSQLServerDeployment').outputs.administratorLoginPassword.value]" - }, - "dbUri": { - "type": "string", - "value": "[concat('jdbc:sqlserver://', variables('dbServerName'), '.database.windows.net:1433;database=', variables('dbName'), ';user=', reference('hawkBitSQLServerDeployment').outputs.administratorLogin.value, '@', variables('dbServerName'), ';password=',reference('hawkBitSQLServerDeployment').outputs.administratorLoginPassword.value, ';encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;')]" - }, - "storageKey": { - "type": "string", - "value": "[reference('hawkBitStorageDeployment').outputs.storageKey.value]" - }, - "storageConnectionString": { - "type": "string", - "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'),';AccountKey=', reference('hawkBitStorageDeployment').outputs.storageKey.value)]" - }, - "ehNamespaceConnectionString": { - "type": "string", - "value": "[reference('hawkBitEventHubsDeployment').outputs.namespaceConnectionString.value]" - }, - "ehNamespaceName": { - "type": "string", - "value": "[variables('namespaceName')]" - } - } -} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/ehNamespaceDeploy.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/ehNamespaceDeploy.json deleted file mode 100644 index 5258d19..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/ehNamespaceDeploy.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "namespaceName": { - "type": "string", - "defaultValue": "hawkbit-ns", - "metadata": { - "description": "Name of EventHub namespace" - } - }, - "eventhubSku": { - "type": "string", - "allowedValues": ["Basic", "Standard"], - "defaultValue": "Standard", - "metadata": { - "description": "The messaging tier for service Bus namespace" - } - }, - "skuCapacity": { - "type": "int", - "allowedValues": [1, 2, 4], - "defaultValue": 1, - "metadata": { - "description": "MessagingUnits for premium namespace" - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Location for all resources." - } - }, - "virtualNetworkName": { - "type": "string", - "metadata": { - "description": "Name of an existing VNET that will contain this deployment." - } - }, - "virtualNetworkResourceGroup": { - "type": "string", - "metadata": { - "description": "Name of the existing VNET resource group" - } - }, - "subnetName": { - "type": "string", - "metadata": { - "description": "Subnet name that will contain the nodes." - } - } - }, - "variables": { - "defaultSASKeyName": "RootManageSharedAccessKey", - "authRuleResourceId": "[resourceId('Microsoft.EventHub/namespaces/authorizationRules', parameters('namespaceName'), variables('defaultSASKeyName'))]", - "namespaceNetworkRuleSetName": "[concat(parameters('namespaceName'), concat('/', 'default'))]", - "vnetSubnetId": "[resourceId(parameters('virtualNetworkResourceGroup'),'Microsoft.Network/virtualNetworks/subnets',parameters('virtualNetworkName'),parameters('subnetName'))]", - }, - "resources": [{ - "apiVersion": "2017-04-01", - "name": "[parameters('namespaceName')]", - "type": "Microsoft.EventHub/namespaces", - "location": "[parameters('location')]", - "sku": { - "name": "[parameters('eventhubSku')]", - "tier": "[parameters('eventhubSku')]", - "capacity": "[parameters('skuCapacity')]" - }, - "tags": { - "displayName": "[parameters('namespaceName')]" - }, - "properties": { - "kafkaEnabled": true - } - }, - { - "apiVersion": "2018-01-01-preview", - "name": "[variables('namespaceNetworkRuleSetName')]", - "type": "Microsoft.EventHub/namespaces/networkruleset", - "dependsOn": [ - "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'))]" - ], - "properties": { - "virtualNetworkRules": [{ - "subnet": { - "id": "[variables('vnetSubnetId')]" - }, - "ignoreMissingVnetServiceEndpoint": false - }], - "defaultAction": "Deny" - } - } - - ], - "outputs": { - "namespaceConnectionString": { - "type": "string", - "value": "[listkeys(variables('authRuleResourceId'), '2017-04-01').primaryConnectionString]" - } - } -} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/kubernetesDeploy.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/kubernetesDeploy.json deleted file mode 100644 index 4a03e0f..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/kubernetesDeploy.json +++ /dev/null @@ -1,287 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "kubernetesVersion": { - "type": "string", - "defaultValue": "1.17.9", - "metadata": { - "description": "Kubernetes version." - } - }, - "clusterName": { - "type": "string", - "defaultValue": "hawkbitakscluster", - "metadata": { - "description": "The name of the Managed Cluster resource." - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "The location of the Managed Cluster resource." - } - }, - "dnsPrefix": { - "type": "string", - "metadata": { - "description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN." - } - }, - "dnsLabelPrefix": { - "type": "string", - "metadata": { - "description": "DNS Label for the Public IP. Must be lowercase. It should match with the following regular expression: ^[a-z][a-z0-9-]{1,61}[a-z0-9]$ or it will raise an error." - } - }, - "osDiskSizeGB": { - "type": "int", - "defaultValue": 0, - "metadata": { - "description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize." - }, - "minValue": 0, - "maxValue": 1023 - }, - "agentCount": { - "type": "int", - "defaultValue": 3, - "metadata": { - "description": "The number of nodes for the cluster." - }, - "minValue": 1, - "maxValue": 50 - }, - "agentVMSize": { - "type": "string", - "defaultValue": "Standard_DS2_v2", - "metadata": { - "description": "The size of the Virtual Machine." - } - }, - "servicePrincipalObjectId": { - "type": "securestring", - "metadata": { - "description": "Object ID against which the Network Contributor roles will be assigned on the subnet" - } - }, - "servicePrincipalClientId": { - "metadata": { - "description": "Client ID (used by cloudprovider)" - }, - "type": "securestring" - }, - "servicePrincipalClientSecret": { - "metadata": { - "description": "The Service Principal Client Secret." - }, - "type": "securestring" - }, - "osType": { - "type": "string", - "defaultValue": "Linux", - "allowedValues": [ - "Linux" - ], - "metadata": { - "description": "The type of operating system." - } - }, - "enableHttpApplicationRouting": { - "defaultValue": false, - "type": "bool", - "metadata": { - "description": "boolean flag to turn on and off of http application routing" - } - }, - "networkPlugin": { - "allowedValues": [ - "azure", - "kubenet" - ], - "defaultValue": "azure", - "type": "string", - "metadata": { - "description": "Network plugin used for building Kubernetes network." - } - }, - "networkPolicy": { - "allowedValues": [ - "azure", - "calico" - ], - "defaultValue": "azure", - "type": "string", - "metadata": { - "description": "Network policy option." - } - }, - "maxPods": { - "defaultValue": 30, - "type": "int", - "metadata": { - "description": "Maximum number of pods that can run on a node." - } - }, - "enableRBAC": { - "defaultValue": true, - "type": "bool", - "metadata": { - "description": "boolean flag to turn on and off of RBAC" - } - }, - "virtualNetworkName": { - "type": "string", - "metadata": { - "description": "Name of an existing VNET that will contain this AKS deployment." - } - }, - "virtualNetworkResourceGroup": { - "type": "string", - "metadata": { - "description": "Name of the existing VNET resource group" - } - }, - "subnetName": { - "type": "string", - "metadata": { - "description": "Subnet name that will contain the AKS nodes." - } - }, - "publicIPAddressName": { - "type": "string", - "metadata": { - "description": "Public IP address name that will be used by hawkbit service." - } - }, - "serviceCidr": { - "type": "string", - "defaultValue": "10.0.0.0/16", - "metadata": { - "description": "A CIDR notation IP range from which to assign service cluster IPs." - } - }, - "dnsServiceIP": { - "type": "string", - "defaultValue": "10.0.0.10", - "metadata": { - "description": "Containers DNS server IP address." - } - }, - "dockerBridgeCidr": { - "type": "string", - "defaultValue": "172.17.0.1/16", - "metadata": { - "description": "A CIDR notation IP for Docker bridge." - } - } - }, - "variables": { - "publicIPRef": "[resourceId('Microsoft.Network/publicIPAddresses',parameters('publicIPAddressName'))]", - "vnetSubnetId": "[resourceId(parameters('virtualNetworkResourceGroup'),'Microsoft.Network/virtualNetworks/subnets',parameters('virtualNetworkName'),parameters('subnetName'))]" - }, - "resources": [ - { - "apiVersion": "2019-06-01", - "type": "Microsoft.ContainerService/managedClusters", - "location": "[parameters('location')]", - "name": "[parameters('clusterName')]", - "tags": {}, - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'ClusterResourceGroupRoleAssignmentDeployment')]", - "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPAddressName'))]", - ], - "properties": { - "dnsPrefix": "[parameters('dnsPrefix')]", - "enableRBAC": "[parameters('enableRBAC')]", - "kubernetesVersion": "[parameters('kubernetesVersion')]", - "addonProfiles": { - "httpApplicationRouting": { - "enabled": "[parameters('enableHttpApplicationRouting')]" - } - }, - "agentPoolProfiles": [ - { - "name": "agentpool", - "osDiskSizeGB": "[parameters('osDiskSizeGB')]", - "count": "[parameters('agentCount')]", - "vmSize": "[parameters('agentVMSize')]", - "osType": "[parameters('osType')]", - "storageProfile": "ManagedDisks", - "vnetSubnetID": "[variables('vnetSubnetID')]", - "maxPods": "[parameters('maxPods')]" - } - ], - "servicePrincipalProfile": { - "clientId": "[parameters('servicePrincipalClientId')]", - "Secret": "[parameters('servicePrincipalClientSecret')]" - }, - "networkProfile": { - "networkPlugin": "[parameters('networkPlugin')]", - "networkPolicy": "[parameters('networkPolicy')]", - "serviceCidr": "[parameters('serviceCidr')]", - "dnsServiceIP": "[parameters('dnsServiceIP')]", - "dockerBridgeCidr": "[parameters('dockerBridgeCidr')]" - } - } - }, - { - "type": "Microsoft.Resources/deployments", - "name": "ClusterResourceGroupRoleAssignmentDeployment", - "apiVersion": "2017-05-10", - "subscriptionId": "[subscription().subscriptionId]", - "resourceGroup": "[parameters('virtualNetworkResourceGroup')]", - "properties": { - "mode": "Incremental", - "template": { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": {}, - "variables": {}, - "resources": [ - { - "type": "Microsoft.Authorization/roleAssignments", - "apiVersion": "2017-05-01", - "name": "[guid(resourceGroup().id, deployment().name)]", - "properties": { - "scope": "[resourceGroup().id]", - "principalId": "[parameters('servicePrincipalObjectId')]", - "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '4d97b98b-1d4f-4787-a291-c67834d212e7')]" - } - } - ] - } - } - }, - { - "apiVersion": "2017-06-01", - "type": "Microsoft.Network/publicIPAddresses", - "name": "[parameters('publicIPAddressName')]", - "location": "[parameters('location')]", - "dependsOn": [ - "[concat('Microsoft.Resources/deployments/', 'ClusterResourceGroupRoleAssignmentDeployment')]" - ], - "properties": { - "publicIPAllocationMethod": "Static", - "dnsSettings": { - "domainNameLabel": "[parameters('dnsLabelPrefix')]" - } - } - } - ], - "outputs": { - "controlPlaneFQDN": { - "type": "string", - "value": "[reference(parameters('clusterName')).fqdn]" - }, - "ipAddress": { - "value": "[reference(variables('publicIPRef'), '2017-11-01').ipAddress]", - "type": "string" - }, - "ipFQDN": { - "value": "[reference(variables('publicIPRef'), '2017-11-01').dnsSettings.fqdn]", - "type": "string" - } - } -} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/sqlServerDeploy.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/sqlServerDeploy.json deleted file mode 100644 index aeec731..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/sqlServerDeploy.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "dbServerName": { - "type": "string", - "defaultValue": "hawkbitsql", - "metadata": { - "description": "Azure DB server name." - } - }, - "dbName": { - "type": "string", - "defaultValue": "hawkbit", - "metadata": { - "description": "Azure DB name." - } - }, - "transparentDataEncryption": { - "type": "string", - "allowedValues": [ - "Enabled", - "Disabled" - ], - "defaultValue": "Enabled", - "metadata": { - "description": "Enable or disable Transparent Data Encryption (TDE) for the database." - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Location for all resources." - } - }, - "virtualNetworkName": { - "type": "string", - "metadata": { - "description": "Name of an existing VNET that will contain this deployment." - } - }, - "virtualNetworkResourceGroup": { - "type": "string", - "metadata": { - "description": "Name of the existing VNET resource group" - } - }, - "subnetName": { - "type": "string", - "metadata": { - "description": "Subnet name that will contain the nodes." - } - } - }, - "variables": { - "sqlserverAdminLogin": "[concat('l', uniqueString(resourceGroup().id, '9A08DDB9-95A1-495F-9263-D89738ED4205'))]", - "sqlserverAdminPassword": "[concat('P', uniqueString(resourceGroup().id, '224F5A8B-51DB-46A3-A7C8-59B0DD584A41'), 'x', '!')]", - "vnetSubnetId": "[resourceId(parameters('virtualNetworkResourceGroup'),'Microsoft.Network/virtualNetworks/subnets',parameters('virtualNetworkName'),parameters('subnetName'))]", - "networkRuleName": "[concat(parameters('dbServerName'), concat('/', parameters('virtualNetworkName')))]" - }, - "resources": [{ - "type": "Microsoft.Sql/servers", - "apiVersion": "2018-06-01-preview", - "name": "[parameters('dbServerName')]", - "location": "[parameters('location')]", - "tags": { - "displayName": "[parameters('dbServerName')]" - }, - "properties": { - "administratorLogin": "[variables('sqlserverAdminLogin')]", - "administratorLoginPassword": "[variables('sqlserverAdminPassword')]" - }, - "resources": [{ - "type": "databases", - "apiVersion": "2018-06-01-preview", - "name": "[parameters('dbName')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "[parameters('dbName')]" - }, - "dependsOn": [ - "[parameters('dbServerName')]" - ], - "properties": { - "collation": "SQL_Latin1_General_CP1_CI_AS", - "edition": "Basic", - "maxSizeBytes": "1073741824", - "requestedServiceObjectiveName": "Basic" - }, - "resources": [{ - "comments": "Transparent Data Encryption", - "name": "current", - "type": "transparentDataEncryption", - "apiVersion": "2014-04-01-preview", - "properties": { - "status": "[parameters('transparentDataEncryption')]" - }, - "dependsOn": [ - "[parameters('dbName')]" - ] - }] - - }] - }, - { - "type": "Microsoft.Sql/servers/virtualNetworkRules", - "apiVersion": "2015-05-01-preview", - "name": "[variables('networkRuleName')]", - "dependsOn": [ - "[parameters('dbServerName')]" - ], - "properties": { - "virtualNetworkSubnetId": "[variables('vnetSubnetId')]", - "ignoreMissingVnetServiceEndpoint": false - } - } - ], - "outputs": { - "administratorLogin": { - "type": "string", - "value": "[variables('sqlserverAdminLogin')]" - }, - "administratorLoginPassword": { - "type": "string", - "value": "[variables('sqlserverAdminPassword')]" - } - } -} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/storageDeploy.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/storageDeploy.json deleted file mode 100644 index d71af8e..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/storageDeploy.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "storageAccountName": { - "type": "string", - "defaultValue": "hawkbitartifactstorage", - "metadata": { - "description": "Azure Storage account name." - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Location for all resources." - } - }, - "storageAccountType": { - "type": "string", - "defaultValue": "Standard_LRS", - "metadata": { - "description": "Storage SKU." - } - }, - "virtualNetworkName": { - "type": "string", - "metadata": { - "description": "Name of an existing VNET that will contain this deployment." - } - }, - "virtualNetworkResourceGroup": { - "type": "string", - "metadata": { - "description": "Name of the existing VNET resource group" - } - }, - "subnetName": { - "type": "string", - "metadata": { - "description": "Subnet name that will contain the nodes." - } - } - }, - "variables": { - "vnetSubnetId": "[resourceId(parameters('virtualNetworkResourceGroup'),'Microsoft.Network/virtualNetworks/subnets',parameters('virtualNetworkName'),parameters('subnetName'))]" - }, - - "resources": [{ - "type": "Microsoft.Storage/storageAccounts", - "name": "[parameters('storageAccountName')]", - "apiVersion": "2018-07-01", - "location": "[parameters('location')]", - "sku": { - "name": "[parameters('storageAccountType')]" - }, - "kind": "Storage", - "properties": { - "supportsHttpsTrafficOnly": true, - "networkAcls": { - "bypass": "None", - "virtualNetworkRules": [{ - "id": "[variables('vnetSubnetId')]", - "action": "Allow" - }], - "defaultAction": "Deny" - } - } - }], - "outputs": { - "storageKey": { - "type": "string", - "value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]" - } - } -} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/vnetDeploy.json b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/vnetDeploy.json deleted file mode 100644 index e213ee0..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/arm/templates/vnetDeploy.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "vnetName": { - "type": "string", - "defaultValue": "hawkBitVNet", - "metadata": { - "description": "hawkBit VNet name" - } - }, - "vnetAddressPrefix": { - "type": "string", - "defaultValue": "10.0.0.0/8", - "metadata": { - "description": "hawkBit Address Prefix" - } - }, - "aksSubnetPrefix": { - "type": "string", - "defaultValue": "10.240.0.0/16", - "metadata": { - "description": "hawkBit AKS Subnet Prefix" - } - }, - "aksSubnetName": { - "type": "string", - "defaultValue": "AksSubnet", - "metadata": { - "description": "hawkBit AKS Subnet Name" - } - }, - "location": { - "type": "string", - "defaultValue": "[resourceGroup().location]", - "metadata": { - "description": "Location for all resources." - } - } - }, - "variables": {}, - "resources": [{ - "apiVersion": "2018-10-01", - "type": "Microsoft.Network/virtualNetworks", - "name": "[parameters('vnetName')]", - "location": "[parameters('location')]", - "properties": { - "addressSpace": { - "addressPrefixes": [ - "[parameters('vnetAddressPrefix')]" - ] - } - }, - "resources": [{ - "apiVersion": "2018-10-01", - "type": "subnets", - "location": "[parameters('location')]", - "name": "[parameters('aksSubnetName')]", - "dependsOn": [ - "[parameters('vnetName')]" - ], - "properties": { - "addressPrefix": "[parameters('aksSubnetPrefix')]", - "serviceEndpoints": [{ - "service": "Microsoft.EventHub" - }, - { - "service": "Microsoft.Storage" - }, - { - "service": "Microsoft.Sql" - } - ] - - } - }] - }] -} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/.helmignore b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/.helmignore deleted file mode 100644 index 50af031..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/Chart.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/Chart.yaml deleted file mode 100644 index 0cba412..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -description: A Helm chart for hawkBit Update Server on Azure Kubernetes Service (AKS) -name: hawkbit -fullname: org-eclipse-hawkbit -version: 0.3.0 diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/NOTES.txt b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/NOTES.txt deleted file mode 100644 index 084ae2c..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/NOTES.txt +++ /dev/null @@ -1,21 +0,0 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range $.Values.ingress.paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host }}{{ . }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "hawkbit.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get svc -w {{ include "hawkbit.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "hawkbit.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "hawkbit.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl port-forward $POD_NAME 8080:80 -{{- end }} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/_helpers.tpl b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/_helpers.tpl deleted file mode 100644 index 1bc4a89..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/_helpers.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "hawkbit.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "hawkbit.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "hawkbit.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/deployment.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/deployment.yaml deleted file mode 100644 index 8b1a606..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/deployment.yaml +++ /dev/null @@ -1,101 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "hawkbit.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - helm.sh/chart: {{ include "hawkbit.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} -spec: - replicas: {{ .Values.replicaCount }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - template: - metadata: - labels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - spec: - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - ports: - - name: http - containerPort: 8080 - protocol: TCP - env: - - name: HAWKBIT_SERVER_BUILD_VERSION - value: "{{ .Values.image.tag }}" - - name: SPRING_JPA_DATABASE - value: "SQL_SERVER" - - name: SPRING_DATASOURCE_DRIVERCLASSNAME - value: "com.microsoft.sqlserver.jdbc.SQLServerDriver" - - name: SPRING_CLOUD_BUS_ENABLED - value: "true" - - name: SPRING_DATASOURCE_USER - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: db-username - - name: SPRING_DATASOURCE_URL - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: db-url - - name: SPRING_DATASOURCE_PASSWORD - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: db-password - - name: ORG_ECLIPSE_HAWKBIT_REPOSITORY_AZURE_CONNECTION_STRING - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: storage-url - - name: AZURE_EVENTHUBS_CONNECTIONSTRING - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: event-hubs-connection-string - - name: AZURE_EVENTHUBS_NAMESPACE - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: eventhubs-namespace - - name: MANAGEMENT_METRICS_EXPORT_AZUREMONITOR_INSTRUMENTATION-KEY - valueFrom: - secretKeyRef: - name: hawkbit-infra-secrets - key: insights-key - - name: MANAGEMENT_METRICS_EXPORT_AZUREMONITOR_ENABLED - value: "{{ .Values.insights.enabled }}" - livenessProbe: - httpGet: - path: / - port: 8080 - initialDelaySeconds: 60 - timeoutSeconds: 2 - readinessProbe: - httpGet: - path: / - port: 8080 - initialDelaySeconds: 5 - timeoutSeconds: 2 - resources: - {{- toYaml .Values.resources | nindent 12 }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/hawkbit-infra-secrets.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/hawkbit-infra-secrets.yaml deleted file mode 100644 index f7fcddf..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/hawkbit-infra-secrets.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: hawkbit-infra-secrets -type: Opaque -data: - db-password: {{ .Values.db.password | b64enc | quote}} - db-username: {{ .Values.db.username | b64enc | quote}} - db-url: {{ .Values.db.url | b64enc | quote}} - storage-url: {{ .Values.storage.url | b64enc | quote}} - event-hubs-connection-string: {{ .Values.eventHubs.connectionString | b64enc | quote}} - eventhubs-namespace: {{ .Values.eventHubs.namespace | b64enc | quote}} - insights-key: {{ .Values.insights.key | b64enc | quote}} \ No newline at end of file diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/ingress.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/ingress.yaml deleted file mode 100644 index 067ab96..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/ingress.yaml +++ /dev/null @@ -1,70 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "hawkbit.fullname" . -}} -{{- $ingressPaths := .Values.ingress.paths -}} -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - helm.sh/chart: {{ include "hawkbit.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: -{{- if .Values.ingress.tls.enabled }} - tls: - - hosts: - {{- range .Values.ingress.hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .Values.ingress.tls.secretName }} -{{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ . | quote }} - http: - paths: - {{- range $ingressPaths }} - - path: {{ . }} - backend: - serviceName: {{ $fullName }} - servicePort: http - {{- end }} - {{- end }} -{{- end }} -{{- if .Values.ingress.tls.enabled }} ---- -apiVersion: cert-manager.io/v1alpha2 -kind: Issuer -metadata: - name: letsencrypt-prod -spec: - acme: - server: https://acme-v02.api.letsencrypt.org/directory - email: {{ .Values.ingress.tls.email }} - privateKeySecretRef: - name: letsencrypt-prod - solvers: - - http01: - ingress: - class: nginx ---- -apiVersion: cert-manager.io/v1alpha2 -kind: Issuer -metadata: - name: letsencrypt-staging -spec: - acme: - server: https://acme-staging-v02.api.letsencrypt.org/directory - email: {{ .Values.ingress.tls.email }} - privateKeySecretRef: - name: letsencrypt-staging - solvers: - - http01: - ingress: - class: nginx -{{- end }} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/service.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/service.yaml deleted file mode 100644 index a1ecece..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/service.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "hawkbit.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - helm.sh/chart: {{ include "hawkbit.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/tests/test-connection.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/tests/test-connection.yaml deleted file mode 100644 index 43e10ee..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/templates/tests/test-connection.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "hawkbit.fullname" . }}-test-connection" - labels: - app.kubernetes.io/name: {{ include "hawkbit.name" . }} - helm.sh/chart: {{ include "hawkbit.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": test-success -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "hawkbit.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/values.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/values.yaml deleted file mode 100644 index 1217a97..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/hawkbit/values.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# Default values for hawkbit. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 2 - -image: - repository: hawkbit-update-server-azure - tag: latest - pullPolicy: Always - -nameOverride: "" -fullnameOverride: "" - -storage: - url: - -db: - username: - password: - url: - -eventHubs: - connectionString: - namespace: - -insights: - enabled: false - key: "" - -service: - type: ClusterIP - port: 8080 - -ingress: - enabled: true - annotations: - kubernetes.io/ingress.class: nginx - nginx.ingress.kubernetes.io/affinity: cookie - kubernetes.io/tls-acme: "true" - kubernetes.io/ssl-redirect: "true" - cert-manager.io/issuer: letsencrypt-prod - paths: - - / - hosts: - - hawkbit.westeurope.cloudapp.azure.com - tls: - enabled: true - email: you.mail@comes.here - secretName: tls-secret-hawkbit - -resources: - requests: - cpu: 100m - memory: 1Gi - -nodeSelector: {} - -tolerations: [] - -affinity: {} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/helm-rbac.yaml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/helm-rbac.yaml deleted file mode 100644 index b9fa174..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/deployment/helm/helm-rbac.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tiller - namespace: kube-system ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - annotations: - rbac.authorization.kubernetes.io/autoupdate: "true" - labels: - kubernetes.io/bootstrapping: rbac-defaults - name: tiller-cluster-admin -rules: - - apiGroups: - - "*" - resources: - - "*" - verbs: - - "*" - - nonResourceURLs: - - "*" - verbs: - - "*" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: tiller -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: tiller-cluster-admin -subjects: - - kind: ServiceAccount - name: tiller - namespace: kube-system diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/pom.xml b/hawkbit-extended-runtimes/hawkbit-update-server-azure/pom.xml deleted file mode 100644 index 3dd08da..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/pom.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - 4.0.0 - - org.eclipse.hawkbit - hawkbit-extended-runtimes - ${revision} - - hawkbit-update-server-azure - hawkBit :: Extensions :: Azure enabled Update Server - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - ${baseDir} - false - org.eclipse.hawkbit.app.Start - JAR - - - - - - - - - - - org.eclipse.hawkbit - hawkbit-boot-starter-ddi-api - ${hawkbit.version} - - - org.eclipse.hawkbit - hawkbit-boot-starter-mgmt-api - ${hawkbit.version} - - - org.eclipse.hawkbit - hawkbit-boot-starter-mgmt-ui - ${hawkbit.version} - - - org.eclipse.hawkbit - hawkbit-extension-artifact-repository-azure - ${project.version} - - - org.springframework.cloud - spring-cloud-starter-bus-kafka - - - org.springframework.boot - spring-boot-starter-tomcat - - - org.springframework.security - spring-security-rsa - - - org.apache.tomcat.embed - tomcat-embed-el - - - org.springframework.cloud - spring-cloud-function-context - - - - - com.microsoft.sqlserver - mssql-jdbc - - - - diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureLoginUI.java b/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureLoginUI.java deleted file mode 100644 index b499c19..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureLoginUI.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright (c) 2018 Microsoft and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.eclipse.hawkbit.app; - -import org.eclipse.hawkbit.im.authentication.MultitenancyIndicator; -import org.eclipse.hawkbit.ui.UiProperties; -import org.eclipse.hawkbit.ui.login.AbstractHawkbitLoginUI; -import org.eclipse.hawkbit.ui.themes.HawkbitTheme; -import org.eclipse.hawkbit.ui.utils.VaadinMessageSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.vaadin.spring.security.VaadinSecurity; - -import com.vaadin.spring.annotation.SpringUI; - -/** - * hawkBit login UI implementation. -*/ -@SpringUI(path = HawkbitTheme.LOGIN_UI_PATH) -public class AzureLoginUI extends AbstractHawkbitLoginUI { - private static final long serialVersionUID = 1L; - - @Autowired - AzureLoginUI(final ApplicationContext context, final VaadinSecurity vaadinSecurity, final VaadinMessageSource i18n, - final UiProperties uiProperties, final MultitenancyIndicator multiTenancyIndicator) { - super(context, vaadinSecurity, i18n, uiProperties, multiTenancyIndicator); - } - -} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureUI.java b/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureUI.java deleted file mode 100644 index 8a8bfd0..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/AzureUI.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2018 Microsoft and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.eclipse.hawkbit.app; - -import com.vaadin.server.ErrorHandler; -import org.eclipse.hawkbit.ui.AbstractHawkbitUI; -import org.eclipse.hawkbit.ui.error.ErrorView; -import org.eclipse.hawkbit.ui.UiProperties; -import org.eclipse.hawkbit.ui.components.NotificationUnreadButton; -import org.eclipse.hawkbit.ui.menu.DashboardMenu; -import org.eclipse.hawkbit.ui.push.EventPushStrategy; -import org.eclipse.hawkbit.ui.push.UIEventProvider; -import org.eclipse.hawkbit.ui.utils.VaadinMessageSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.vaadin.spring.events.EventBus.UIEventBus; - -import com.vaadin.annotations.Push; -import com.vaadin.shared.communication.PushMode; -import com.vaadin.shared.ui.ui.Transport; -import com.vaadin.spring.annotation.SpringUI; -import com.vaadin.spring.navigator.SpringViewProvider; - -/** - * hawkBit UI implementation. - */ -@SpringUI -@Push(value = PushMode.AUTOMATIC, transport = Transport.WEBSOCKET_XHR) -public class AzureUI extends AbstractHawkbitUI { - private static final long serialVersionUID = 1L; - - @Autowired - AzureUI(final EventPushStrategy pushStrategy, final UIEventBus eventBus, final UIEventProvider eventProvider, final SpringViewProvider viewProvider, - final ApplicationContext context, final DashboardMenu dashboardMenu, final ErrorView errorview, - final NotificationUnreadButton notificationUnreadButton, final UiProperties uiProperties, - final VaadinMessageSource i18n, final ErrorHandler errorHandler) { - super(pushStrategy, eventBus, eventProvider, viewProvider, context, dashboardMenu, errorview, notificationUnreadButton, - uiProperties, i18n, errorHandler); - } -} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/Start.java b/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/Start.java deleted file mode 100644 index 068a713..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/Start.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright (c) 2018 Microsoft and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.eclipse.hawkbit.app; - -import org.eclipse.hawkbit.autoconfigure.security.EnableHawkbitManagedSecurityConfiguration; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * A {@link SpringBootApplication} annotated class with a main method to start. - * The minimal configuration for the stand alone hawkBit server. - * - */ -@SpringBootApplication -@EnableHawkbitManagedSecurityConfiguration -// Exception squid:S1118 - Spring boot standard behavior -@SuppressWarnings({ "squid:S1118" }) -public class Start { - - /** - * Main method to start the spring-boot application. - * - * @param args - * the VM arguments. - */ - // Exception squid:S2095 - Spring boot standard behavior - @SuppressWarnings({ "squid:S2095" }) - public static void main(final String[] args) { - SpringApplication.run(Start.class, args); - } -} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/StreamAwareErrorController.java b/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/StreamAwareErrorController.java deleted file mode 100644 index 9a963f8..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/java/org/eclipse/hawkbit/app/StreamAwareErrorController.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2018 Microsoft and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.eclipse.hawkbit.app; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController; -import org.springframework.boot.web.servlet.error.ErrorAttributes; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -/** - * Error page controller that ensures that ocet stream does not return text in - * case of an error. - * - */ -@Controller -public class StreamAwareErrorController extends BasicErrorController { - - /** - * A new {@link StreamAwareErrorController}. - * - * @param errorAttributes - * the error attributes - * @param serverProperties - * configuration properties - */ - public StreamAwareErrorController(final ErrorAttributes errorAttributes, final ServerProperties serverProperties) { - super(errorAttributes, serverProperties.getError()); - } - - @RequestMapping(produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) - public ResponseEntity errorStream(final HttpServletRequest request, final HttpServletResponse response) { - final HttpStatus status = getStatus(request); - return new ResponseEntity<>(status); - } - -} diff --git a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/resources/application.properties b/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/resources/application.properties deleted file mode 100644 index e4fb663..0000000 --- a/hawkbit-extended-runtimes/hawkbit-update-server-azure/src/main/resources/application.properties +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright (c) 2018 Microsoft and others -# -# This program and the accompanying materials are made -# available under the terms of the Eclipse Public License 2.0 -# which is available at https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# - -# User Security -spring.security.user.name=admin -spring.security.user.password={noop}admin - -# Kubernetes Ingress support -server.use-forward-headers=true - -# DDI authentication configuration -hawkbit.server.ddi.security.authentication.anonymous.enabled=false -hawkbit.server.ddi.security.authentication.targettoken.enabled=true -hawkbit.server.ddi.security.authentication.gatewaytoken.enabled=true - -# Allow bean overrides. -spring.main.allow-bean-definition-overriding=true - -# Optional events -hawkbit.server.repository.publish-target-poll-event=false - -# SQL Server - Datasource -spring.jpa.database=SQL_SERVER -spring.datasource.url= -spring.datasource.username= -spring.datasource.password= -spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver - -# Azure Storage integration -org.eclipse.hawkbit.repository.azure.connection-string= - -# (Optional) Azure EventHubs integration for inner cluster communication -spring.cloud.bus.enabled=false -spring.cloud.bus.destination=hawkbit - -azure.event-hubs.namespace= -azure.event-hubs.connection-string= - -azure.event-hubs.service-host=${azure.event-hubs.namespace}.servicebus.windows.net -azure.event-hubs.service-port=9093 -spring.cloud.stream.kafka.binder.brokers=${azure.event-hubs.service-host}:${azure.event-hubs.service-port} -spring.cloud.stream.kafka.binder.configuration.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="${azure.event-hubs.connection-string}"; -spring.cloud.stream.kafka.binder.configuration.sasl.mechanism=PLAIN -spring.cloud.stream.kafka.binder.configuration.security.protocol=SASL_SSL diff --git a/hawkbit-extended-runtimes/pom.xml b/hawkbit-extended-runtimes/pom.xml deleted file mode 100644 index 844550c..0000000 --- a/hawkbit-extended-runtimes/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - 4.0.0 - - org.eclipse.hawkbit - hawkbit-extensions-parent - ${revision} - - - ${revision} - pom - - hawkbit-extended-runtimes - - hawkBit :: Extensions :: Runtimes - Parent pom for hawkBit runtimes pre-bundled with extensions - - - hawkbit-update-server-azure - - \ No newline at end of file diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/pom.xml b/hawkbit-extension-artifact-repository-azure/pom.xml similarity index 64% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/pom.xml rename to hawkbit-extension-artifact-repository-azure/pom.xml index dcbdcc1..c7ac1d3 100644 --- a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/pom.xml +++ b/hawkbit-extension-artifact-repository-azure/pom.xml @@ -15,7 +15,7 @@ 4.0.0 org.eclipse.hawkbit - hawkbit-extensions-azure + hawkbit-extensions-parent ${revision} hawkbit-extension-artifact-repository-azure @@ -23,6 +23,34 @@ hawkBit extension for managing software artifacts in Microsoft Azure Storage + + 2.1.6 + 2.1.2 + 8.0.0 + + + + + + com.microsoft.azure + azure-spring-boot-bom + ${azure.version} + pom + import + + + com.microsoft.azure + applicationinsights-core + ${applicationinsights.version} + + + com.microsoft.azure + azure-storage + ${azure.storage.version} + + + + com.microsoft.azure diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageArtifact.java b/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageArtifact.java similarity index 100% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageArtifact.java rename to hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageArtifact.java diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepository.java b/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepository.java similarity index 100% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepository.java rename to hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepository.java diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryAutoConfiguration.java b/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryAutoConfiguration.java similarity index 100% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryAutoConfiguration.java rename to hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryAutoConfiguration.java diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java b/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java similarity index 94% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java rename to hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java index 835da86..9853f6e 100644 --- a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java +++ b/hawkbit-extension-artifact-repository-azure/src/main/java/org/eclipse/hawkbit/artifact/repository/AzureStorageRepositoryProperties.java @@ -9,8 +9,8 @@ */ package org.eclipse.hawkbit.artifact.repository; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotEmpty; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/resources/META-INF/spring.factories b/hawkbit-extension-artifact-repository-azure/src/main/resources/META-INF/spring.factories similarity index 100% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/resources/META-INF/spring.factories rename to hawkbit-extension-artifact-repository-azure/src/main/resources/META-INF/spring.factories diff --git a/hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/resources/hawkbit-azure-storage-defaults.properties b/hawkbit-extension-artifact-repository-azure/src/main/resources/hawkbit-azure-storage-defaults.properties similarity index 100% rename from hawkbit-extensions-azure/hawkbit-extension-artifact-repository-azure/src/main/resources/hawkbit-azure-storage-defaults.properties rename to hawkbit-extension-artifact-repository-azure/src/main/resources/hawkbit-azure-storage-defaults.properties diff --git a/hawkbit-extension-artifact-repository-mongo/pom.xml b/hawkbit-extension-artifact-repository-mongo/pom.xml index 134860f..b33d7ac 100644 --- a/hawkbit-extension-artifact-repository-mongo/pom.xml +++ b/hawkbit-extension-artifact-repository-mongo/pom.xml @@ -72,7 +72,8 @@ de.flapdoodle.embed - de.flapdoodle.embed.mongo + de.flapdoodle.embed.mongo.spring30x + 4.11.0 test diff --git a/hawkbit-extension-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/repository/MongoDBArtifactStoreTest.java b/hawkbit-extension-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/repository/MongoDBArtifactStoreTest.java index 91db55d..4c6a95b 100644 --- a/hawkbit-extension-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/repository/MongoDBArtifactStoreTest.java +++ b/hawkbit-extension-artifact-repository-mongo/src/test/java/org/eclipse/hawkbit/artifact/repository/MongoDBArtifactStoreTest.java @@ -36,7 +36,7 @@ @Feature("Component Tests - Repository") @Story("Artifact Store MongoDB") @SpringBootTest(classes = {MongoDBArtifactStoreAutoConfiguration.class, TestConfiguration.class}, properties = { - "spring.mongodb.embedded.version=3.5.5", + "de.flapdoodle.mongodb.embedded.version=3.6.23", "spring.mongodb.embedded.features=sync_delay,no_http_interface_arg"}) public class MongoDBArtifactStoreTest { private static final String TENANT = "test_tenant"; diff --git a/hawkbit-extension-artifact-repository-s3/pom.xml b/hawkbit-extension-artifact-repository-s3/pom.xml index 22714e1..83d7639 100644 --- a/hawkbit-extension-artifact-repository-s3/pom.xml +++ b/hawkbit-extension-artifact-repository-s3/pom.xml @@ -19,7 +19,6 @@ hawkbit-extension-artifact-repository-s3 hawkBit :: Extensions :: S3 Repository - org.eclipse.hawkbit diff --git a/hawkbit-extensions-azure/README.md b/hawkbit-extensions-azure/README.md deleted file mode 100644 index 9d9e9a4..0000000 --- a/hawkbit-extensions-azure/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# hawkBit extensions for Microsoft Azure - -This module combines a set of extensions for optimized integration of the hawkBit update server into Microsoft Azure. - -In addition we provide a pre-packaged [runtime including the Azure extensions](/hawkbit-extended-runtimes/hawkbit-update-server-azure). - -## hawkBit Azure support - -| Feature | Status | Integrated with [runtime](/hawkbit-extended-runtimes/hawkbit-update-server-azure) | -| ----------------------------------------------------------------------------------------------------------------------------------- | :----------------: | :-------------------------------------------------------------------------------: | -| Artifact repository based on [Azure Blob storage](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction). | :white_check_mark: | :white_check_mark: | -| Inner cluster messaging support based on [Azure Event Hubs](https://docs.microsoft.com/en-us/azure/event-hubs/). | :white_check_mark: | :white_check_mark: | -| Kubernetes deployment support based on [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/). | :white_check_mark: | :white_check_mark: | diff --git a/hawkbit-extensions-azure/pom.xml b/hawkbit-extensions-azure/pom.xml deleted file mode 100644 index 631a00a..0000000 --- a/hawkbit-extensions-azure/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - 4.0.0 - - - org.eclipse.hawkbit - hawkbit-extensions-parent - ${revision} - - - hawkbit-extensions-azure - ${revision} - pom - - hawkBit :: Extensions :: Azure - Parent pom for hawkBit extensions around Microsoft Azure integration - - - 2.1.6 - 2.1.2 - 8.0.0 - - - - hawkbit-extension-artifact-repository-azure - - - - - - com.microsoft.azure - azure-spring-boot-bom - ${azure.version} - pom - import - - - com.microsoft.azure - applicationinsights-core - ${applicationinsights.version} - - - com.microsoft.azure - azure-storage - ${azure.storage.version} - - - - diff --git a/pom.xml b/pom.xml index 295c21c..dff23ab 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ org.eclipse.hawkbit hawkbit-parent - 0.4.1 + 0-SNAPSHOT hawkbit-extensions-parent @@ -55,8 +55,8 @@ - 0.4.0-SNAPSHOT - 0.4.1 + 0-SNAPSHOT + 0-SNAPSHOT 1.12.513 0.200.0 @@ -82,11 +82,10 @@ + hawkbit-extension-artifact-repository-azure hawkbit-extension-artifact-repository-mongo hawkbit-extension-artifact-repository-s3 hawkbit-extension-artifact-repository-gcs - hawkbit-extensions-azure - hawkbit-extended-runtimes