Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
8b9d545
Update azuredeploy.json
ProfiseeAdmin Jul 19, 2022
f8e78ef
Update prereqcheck.sh
ProfiseeAdmin Jul 19, 2022
01a7610
Update azuredeploy.json
ProfiseeAdmin Jul 20, 2022
f3fd485
Update azuredeploy.parameters.json
ProfiseeAdmin Jul 20, 2022
99e42ba
Update deployprofisee.sh
ProfiseeAdmin Jul 20, 2022
0d02af7
Update index.yaml
ProfiseeAdmin Jul 20, 2022
3011717
Update README.md
ProfiseeAdmin Jul 20, 2022
a7d4097
Update prereqcheck.sh
ProfiseeAdmin Jul 20, 2022
167d222
Update deployprofisee.sh
ProfiseeAdmin Jul 20, 2022
5eb0c7f
Update prereqcheck.sh
ProfiseeAdmin Jul 20, 2022
7aa6291
Update deployprofisee.sh
ProfiseeAdmin Jul 22, 2022
78cfaa1
Update deployprofisee.sh
ProfiseeAdmin Jul 22, 2022
b566535
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
97d8f2d
Update deployprofisee.sh
ProfiseeAdmin Jul 22, 2022
da7ecaf
Update deployprofisee.sh
ProfiseeAdmin Jul 22, 2022
9045cdd
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
b4b1b21
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
c30681d
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
e5b9688
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
55c3f1d
Update prereqcheck.sh
ProfiseeAdmin Jul 22, 2022
506e924
Update azuredeploy.parameters.json
ProfiseeAdmin Jul 22, 2022
bbc652c
Update createUIDefinition.json
ProfiseeAdmin Jul 23, 2022
f2f3d4a
Updated labels, tooltips and a few variables.
ProfiseeAdmin Jul 23, 2022
cda8e95
Update deployprofisee.sh
ProfiseeAdmin Jul 23, 2022
236fb8d
Update prereqcheck.sh
ProfiseeAdmin Jul 23, 2022
9e63fb5
Update azuredeploy.json
ProfiseeAdmin Jul 25, 2022
18208c7
Update createUIDefinition.json
ProfiseeAdmin Jul 26, 2022
fbdd787
Update createUIDefinition.json
ProfiseeAdmin Jul 26, 2022
e78ba1a
Update createUIDefinition.json
ProfiseeAdmin Jul 26, 2022
1a58bee
Update createUIDefinition.json
ProfiseeAdmin Jul 27, 2022
13f14c1
Update deployprofisee.sh
ProfiseeAdmin Jul 27, 2022
b6fc84d
Update README.md
ProfiseeAdmin Jul 27, 2022
40037f6
Update README.md
ProfiseeAdmin Jul 28, 2022
1ec5282
Update README.md
ProfiseeAdmin Jul 28, 2022
b87d56f
Update README.md
ProfiseeAdmin Jul 28, 2022
2ae3d1e
Update Settings.yaml
ProfiseeAdmin Jul 29, 2022
936adfc
Update Settings.yaml
ProfiseeAdmin Jul 29, 2022
e4b2bbe
Update deployprofisee.sh
ProfiseeAdmin Jul 29, 2022
39c148c
Update createUIDefinition.json
ProfiseeAdmin Jul 29, 2022
b8c6b21
Update README.md
ProfiseeAdmin Jul 29, 2022
d349341
Update README.md
ProfiseeAdmin Jul 29, 2022
5a43fe1
updated node sizes
ProfiseeAdmin Jul 29, 2022
364c7ad
Create the service principal
ProfiseeAdmin Jul 29, 2022
5c7225c
Updated nginx and profisee check
ProfiseeAdmin Jul 29, 2022
e60a848
Improved notices
ProfiseeAdmin Jul 29, 2022
35a8966
Added sleep
ProfiseeAdmin Jul 29, 2022
c61feb7
Added checks for uninstall
ProfiseeAdmin Aug 12, 2022
171afef
Added check for User.Read permissions
ProfiseeAdmin Aug 12, 2022
32e14c8
Updated CSI store driver chart URL
ProfiseeAdmin Aug 12, 2022
51607ee
Added echos and namespace check and skip
ProfiseeAdmin Aug 12, 2022
b21f13d
Key vault remount secrets
ProfiseeAdmin Aug 12, 2022
3f19c2e
Updated API version
ProfiseeAdmin Aug 12, 2022
4a4e0e7
Missing quotes
ProfiseeAdmin Aug 12, 2022
68a2f17
Updated readme for Contributor role
ProfiseeAdmin Aug 12, 2022
84f29cd
Update README.md
ProfiseeAdmin Aug 12, 2022
25c541e
Update deployprofisee.sh
ProfiseeAdmin Aug 12, 2022
0b37673
Update chart to 0.1.20
ProfiseeAdmin Aug 12, 2022
544aed8
Update prereqcheck.sh
ProfiseeAdmin Aug 16, 2022
56fd057
update to 0.1.21
ProfiseeAdmin Aug 20, 2022
777ca09
Purview Collection check and selection
ProfiseeAdmin Sep 2, 2022
775e8d7
Update prereqcheck.sh
ProfiseeAdmin Sep 2, 2022
423ed70
Update prereqcheck.sh
ProfiseeAdmin Sep 2, 2022
33a5b84
Update prereqcheck.sh
ProfiseeAdmin Sep 2, 2022
cf4859b
Update azuredeploy.json
ProfiseeAdmin Sep 2, 2022
839cac1
Update prereqcheck.sh
ProfiseeAdmin Sep 2, 2022
a5dbd48
Fixed App admin search
ProfiseeAdmin Sep 2, 2022
549e2ed
Update prereqcheck.sh
ProfiseeAdmin Sep 2, 2022
fb943fc
Remove b64enc for oidcproviders
ProfiseeAdmin Sep 2, 2022
5e3ad46
Reverted change
ProfiseeAdmin Sep 2, 2022
9465ba1
typo
ProfiseeAdmin Sep 2, 2022
f5ee168
remove keyvault pod check
ProfiseeAdmin Sep 2, 2022
7177034
fixed collection id
ProfiseeAdmin Sep 2, 2022
3f424d6
Update deployprofisee.sh
ProfiseeAdmin Sep 2, 2022
aa18c21
Update deployprofisee.sh
ProfiseeAdmin Sep 2, 2022
9e4e4d0
fixed repo
ProfiseeAdmin Sep 2, 2022
c03ec27
tweaks to naming convention
ProfiseeAdmin Sep 3, 2022
f1328ab
Wording and links update
ProfiseeAdmin Sep 3, 2022
a2b18f3
var typo
ProfiseeAdmin Sep 3, 2022
63a32d8
Update Settings.yaml
ProfiseeAdmin Sep 3, 2022
d532bbb
Update README.md
ProfiseeAdmin Sep 3, 2022
b2845c1
Update secret-purview.yaml
ProfiseeAdmin Sep 3, 2022
01c94f6
Update values.yaml
ProfiseeAdmin Sep 3, 2022
7909439
updated values.yaml
ProfiseeAdmin Sep 3, 2022
8fa879c
Updated to 0.1.25
ProfiseeAdmin Sep 3, 2022
63a5eb2
0.1.26 update
ProfiseeAdmin Sep 3, 2022
34000ee
updated to 0.1.27
ProfiseeAdmin Sep 3, 2022
0fa9641
v 0.1.28
ProfiseeAdmin Sep 3, 2022
8118190
Update createUIDefinition.json
ProfiseeAdmin Sep 3, 2022
c9055e9
Upgrade to 0.1.22
ProfiseeAdmin Sep 7, 2022
1122600
Create profisee-platform-0.1.22.tgz
ProfiseeAdmin Sep 7, 2022
cd371e5
Updated for 0.1.22
ProfiseeAdmin Sep 7, 2022
e862728
fixed tag
ProfiseeAdmin Sep 14, 2022
6383a0d
fixed tag
ProfiseeAdmin Sep 14, 2022
e471934
updates Purview availability
ProfiseeAdmin Sep 20, 2022
7dbeaf9
Update createUIDefinition.json
ProfiseeAdmin Sep 20, 2022
9131017
added some versions and ordered
ProfiseeAdmin Sep 20, 2022
c0777b8
updated ingress for spec.ports.AppProtocol
ProfiseeAdmin Sep 27, 2022
cc637a3
Reverted
ProfiseeAdmin Sep 27, 2022
fc7e7e6
TCP probes
ProfiseeAdmin Sep 28, 2022
a84dd87
updated config file to have complus_gcserver value
Naveenr04 Oct 27, 2022
770c3cc
added COMPlus_gcServer value
Naveenr04 Oct 27, 2022
dc3eca4
Merge pull request #2 from Naveenr04/patch-4
ProfiseeAdmin Oct 27, 2022
1b492fb
Merge pull request #1 from Naveenr04/patch-3
ProfiseeAdmin Oct 27, 2022
5e7d297
Update values.yaml
Naveenr04 Oct 27, 2022
808ba25
Merge pull request #3 from Naveenr04/patch-5
ProfiseeAdmin Oct 27, 2022
24d9986
updated to 0.1.23
ProfiseeAdmin Oct 28, 2022
5afc33b
updated link
ProfiseeAdmin Oct 28, 2022
0a9bba7
changed default type
Naveenr04 Oct 28, 2022
03b327d
Merge pull request #4 from Naveenr04/patch-6
ProfiseeAdmin Oct 28, 2022
ba62764
Update profisee-platform-0.1.23.tgz
ProfiseeAdmin Oct 28, 2022
a60f4da
Delete profisee-platform-0.1.23.tgz
ProfiseeAdmin Oct 28, 2022
93ee338
Create profisee-platform-0.1.23.tgz
ProfiseeAdmin Oct 28, 2022
b00f1f8
Update configmap-profisee.yaml
Naveenr04 Oct 28, 2022
03a21c0
Merge pull request #5 from Naveenr04/patch-7
ProfiseeAdmin Oct 28, 2022
cac6239
Update profisee-platform-0.1.23.tgz
ProfiseeAdmin Oct 28, 2022
0cec0ca
updated to latest alpine
ProfiseeAdmin Nov 5, 2022
30b5c18
sync w/ Prod for further testing
ProfiseeAdmin Nov 11, 2022
ac99183
Delete profisee-platform-0.1.24.tgz
ProfiseeAdmin Nov 11, 2022
0449199
sync w/ Prod for further testing
ProfiseeAdmin Nov 11, 2022
4220584
sync Dev to Admin for CollectionID addition
ProfiseeAdmin Nov 14, 2022
ba3b395
Updated to match dev
ProfiseeAdmin Feb 20, 2023
1932f4d
prevent base64 wrapping at 76 chars, fix logic bug in deployment and …
ProfiseeAdmin Mar 15, 2023
000b4d9
revert change
ProfiseeAdmin Mar 21, 2023
3b905ef
updated to 2.46.0 azure cli container
ProfiseeAdmin Mar 22, 2023
9cc27a4
re-added wrapping of base64 for azure cli 2.46.0
ProfiseeAdmin Mar 22, 2023
8aac452
revert to 2.45.0 azure cli as 2.46.0 is not avail yet
ProfiseeAdmin Mar 22, 2023
02b3da6
update for azure cli 2.45.0
ProfiseeAdmin Mar 23, 2023
e0273f9
ui bug fix
ProfiseeAdmin Mar 23, 2023
969f8f1
add option to enable ID_Tokens
ProfiseeAdmin Mar 23, 2023
468e549
add groups support for oidc
ProfiseeAdmin Mar 23, 2023
54cce3f
added support for groups
ProfiseeAdmin Mar 23, 2023
4a96536
remove white spaces
ProfiseeAdmin Mar 27, 2023
0a60e95
will recreated package
ProfiseeAdmin Mar 27, 2023
90c33e7
Create profisee-platform-0.1.25.tgz
ProfiseeAdmin Mar 27, 2023
1739761
Purview account update for readme
ProfiseeAdmin Mar 27, 2023
55572a6
Added Authentication Type Variable
Mar 28, 2023
ec5d89a
Update deployprofisee.sh
Mar 29, 2023
6e1407a
Update deployprofisee.sh
Mar 29, 2023
590ed4f
Update createUIDefinition.json
Mar 29, 2023
75641e4
Update deployprofisee.sh
Mar 29, 2023
73bd0f5
Update deployprofisee.sh
Mar 29, 2023
fd911c2
Update deployprofisee.sh
Mar 30, 2023
52a9bd9
Update deployprofisee.sh
Mar 30, 2023
b766453
Update deployprofisee.sh
Mar 30, 2023
330a4aa
Update deployprofisee.sh
Mar 30, 2023
0aa120b
Update deployprofisee.sh
Mar 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 36 additions & 36 deletions AWS-EKS-CLI/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Deploy Profisee platform on to AWS Elastic Kubernetes services (EKS)

This explains the process to deploy the Profisee platform onto a new AWS EKS cluster
The process below explains how to deploy the Profisee platform onto a new AWS EKS cluster. Profisee requires a Windows and a Linux node. Linux nodes are managed nodes

## Prerequisites

1. License
- Profisee license associated with the dns for the environment
1. The following will be provided by Profisee:
- Please decide on what DNS (FQDN) you will use to access Profisee at and we will generate a license for it.
- ACR username, password and token

2. Https certificate and the private key
2. TLS certificate and the private key.

3. Choose your AWS region you want to use eg us-east-1
3. Pick your AWS region, our sample script uses us-east-1.

4. SQL Server
- AWS RDS instance - https://aws.amazon.com/getting-started/hands-on/create-microsoft-sql-db/
- An appropriately sized AWS RDS instance - https://aws.amazon.com/getting-started/hands-on/create-microsoft-sql-db/

- Goto https://console.aws.amazon.com/rds
- Click create database
Expand All @@ -30,9 +30,9 @@ This explains the process to deploy the Profisee platform onto a new AWS EKS clu
- Public access yes (simpler to debug) - Change to fit your security needs when ready
- Defaults for the rest of the options
- Wait for database to be available
- CLI sample: aws rds create-db-instance --engine sqlserver-ex --db-instance-class db.t3.small --db-instance-identifier profiseedemo --master-username sqladmin --master-user-password Password123 --allocated-storage 20
- CLI sample: aws rds create-db-instance --engine sqlserver-ex --db-instance-class db.t3.small --db-instance-identifier <pickyourname> --master-username <pickusername> --master-user-password <PickStrongPassword> --allocated-storage 50

5. Create EBS volume - must be created in the same region/zone as the eks cluster
5. You will need a storage account so please create an EBS volume. It must be created in the same region/zone as the EKS cluster
- EBS volume - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html

- https://console.aws.amazon.com/ec2
Expand All @@ -54,88 +54,88 @@ This explains the process to deploy the Profisee platform onto a new AWS EKS clu
- Setup IAM - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds

7. Configure DNS
- Choose a DNS host name that you want to use eg: profiseemdm.mycompany.com
- Register that hostname in your DNS provider with a CNAME that points to xxxxxx.elb.<region>.amazonaws.com (this will be updated later.
- Choose a fully qualified domain name that you would like to use, ex. https://profiseemdm.mycompany.com
- Create a CNAME record for the profiseemdm hostname with your domain DNS provider and map it to point to xxxxxx.elb.<region>.amazonaws.com (this will be updated later).


## Deployment

1. Make cluster.yaml and upload to cloudshell.
1. Edit the provided cluster.yaml to match your requirement and upload it to cloudshell.
- Download the cluster.yaml

curl -fsSL -o cluster.yaml https://raw.githubusercontent.com/profiseedev/kubernetes/master/AWS-EKS-CLI/cluster.yaml;
curl -fsSL -o cluster.yaml https://raw.githubusercontent.com/profiseeadmin/kubernetes/master/AWS-EKS-CLI/cluster.yaml;

- Change the name, region and availabilityzones
- Change the name, region and availability zones
- Change the instance type(s) to fit your needs. https://aws.amazon.com/ec2/pricing/on-demand/
- For more complex deployments, including networking vpc and subnet configurations see https://eksctl.io/usage/schema/
- For more complex deployments, including networking VPC and subnet configurations see https://eksctl.io/usage/schema/

2. Create the EKS Clusterr
2. Using CLI, create the EKS Cluster.

eksctl create cluster -f cluster.yaml --install-vpc-controllers --timeout 30m

3. Configure kubectl
3. Using CLI, configure kubectl to connect to the newly created cluster.

aws eks --region us-east-1 update-kubeconfig --name MyCluster
aws eks --region us-east-1 update-kubeconfig --name <ClusterNAmeYouPicked>

4. Update the sql security group to allow the kubernetes nodes ips in
- Get the outbound IP's of the cluster.
4. Configure your SQL security group to permit inbound traffic from the cluster's subnet (you can further lock it down to just the kubernetes Windows node IPs. Note: As AWS implements a rolling deprecation of old Windows Server AMIs you will need to implement a maintenance window to update the underlying AMI in the Windows Nodegroup, so please make sure to update your SQL security group with those updated node IPs.
- Get the outbound IPs of the cluster.

kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type == "ExternalIP")].address}'

- Click on sql instance
- Click on SQL instance
- Click on VPC security group
- Inbound rules
- Edit inbound rules
- Add MSSQL for outbound IP's of cluster
- Add MSSQL for outbound IPs of cluster

5. Install nginx for AWS

helm repo add stable https://charts.helm.sh/stable;
curl -o nginxSettingsAWS.yaml https://raw.githubusercontent.com/Profisee/kubernetes/master/AWS-EKS-CLI/nginxSettingsAWS.yaml;
kubectl create namespace profisee
helm install nginx stable/nginx-ingress --values nginxSettingsAWS.yaml --namespace profisee
helm install nginx stable/nginx-ingress --values nginxSettingsAWS.yaml -n profisee

- Wait for the load balancer to be provisioned. goto aws ec2/load balancing console and wait for the state to go from provisioning to active (3ish minutes)
- Wait for the load balancer to be provisioned. Go to AWS EC2 load balancing console and wait for the state to go from provisioning to active (approximately 3 minutes).

6. Get nginx IP

kubectl get services nginx-nginx-ingress-controller --namespace profisee
kubectl get services nginx-nginx-ingress-controller -n profisee
#Note the external-ip and update the DNS hostname you created earlier and have it point to it (xxxxxx.elb.<region>.amazonaws.com)

7. (Optional) - Install cert-manager for Let's Encrypt

helm install --namespace profisee cert-manager jetstack/cert-manager --namespace default --version v0.16.1 --set installCRDs=true --set nodeSelector."beta\.kubernetes\.io/os"=linux --set webhook.nodeSelector."beta\.kubernetes\.io/os"=linux --set cainjector.nodeSelector."beta\.kubernetes\.io/os"=linux
helm install -n profisee cert-manager jetstack/cert-manager --set installCRDs=true --set nodeSelector."beta\.kubernetes\.io/os"=linux --set webhook.nodeSelector."beta\.kubernetes\.io/os"=linux --set cainjector.nodeSelector."beta\.kubernetes\.io/os"=linux

update Settings.yaml useLetsEncrypt flag to true
Set the Settings.yaml useLetsEncrypt flag to true.

8. Configue Authentication provider
- Create/configure an auth provider in your auth providr of choice. eg Azure Active Directory, OKTA
- Register redirect url http(s)://profiseemdm.mycompany.com/Profisee/auth/signin-microsoft
- Create/configure an auth provider in your auth provider of choice. eg Azure Active Directory, OKTA
- Register redirect url http(s)://profiseemdm.mycompany.com/Profisee/auth/signin-microsoft (or .../auth/signing-okta). Make sure that your URL in the the application registration matches. The /signin-microsoft part from the URL can be anything you like so long as the application registration redirect URL and the value in the Settings.yaml template match.
- Note the clientid, secret and authority url. The authority url for AAD is https://login.microsoftonline.com/{tenantid}

9. Create Profisee Settings.yaml
- Fetch the Settings.yaml template, download the yaml file so you can edit it locally

curl -fsSL -o Settings.yaml https://raw.githubusercontent.com/profiseedev/kubernetes/master/AWS-EKS-CLI/Settings.yaml;
curl -fsSL -o Settings.yaml https://raw.githubusercontent.com/profiseeadmin/kubernetes/master/AWS-EKS-CLI/Settings.yaml;
- Update the values
- Upload to cloudshell

10. Install Profisee

helm repo add profisee https://profiseedev.github.io/kubernetes
helm uninstall --namespace profisee profiseeplatform
helm install --namespace profisee profiseeplatform profisee/profisee-platform --values Settings.yaml
helm repo add profisee https://profiseeadmin.github.io/kubernetes
helm uninstall -n profisee profiseeplatform
helm install -n profisee profiseeplatform profisee/profisee-platform --values Settings.yaml

# Verify and finalize:

1. The initial deploy will have to download the container which takes about 10 minutes. Verify its finished downloading the container:
1. The initial deployment will have to download the container which takes about 10 minutes. Verify it's finished downloading the container:

#check status and wait for "Pulling" to finish
kubectl --namespace profisee describe pod profisee-0
kubectl -n profisee describe pod profisee-0

2. View the kubernetes logs and wait for it to finish successfully starting up. takes longer on the first time as it has to create all the objects in teh database
2. View the kubernetes logs and wait for it to finish successfully starting up. It takes longer on the first time as it has to create all the objects in the database.

kubectl logs profisee-0 --namespace profisee --follow
kubectl logs profisee-0 -n profisee --follow

3. Voila, goto Profisee Platform web portal
- http(s)://FQDNThatPointsToClusterIP/Profisee
68 changes: 58 additions & 10 deletions Azure-ARM/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,69 @@
# DEVELOPMENT. INTERNAL USE ONLY
# Deploy Profisee platform on to AKS using ARM template
# Deploying Profisee Platform on AKS using the ARM template

This ARM template deploys Profisee platform into a Azure Kubernetes Service cluster.

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fprofiseedev%2Fkubernetes%2Fmaster%2FAzure-ARM%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2Fprofiseedev%2Fkubernetes%2Fmaster%2FAzure-ARM%2FcreateUIDefinition.json)

## Prerequisites

1. Managed Identity
- A user assigned managed identity configured ahead of time. The managed identity must have Contributor role for the resource group, and the DNS zone resource group if updating Azure DNS. This can be done by assigning the contributor role to each individual resource group, or assigning the subscription level resource group. If creating an Azure Active Directory application registration, the managed identity must have the Application Developer role assigned to it. Click [here](https://support.profisee.com/wikis/2020_r2_support/planning_your_managed_identity_configuration) for more information.
2. License
- Profisee license associated with the dns for the environment.
Please **DO** review the guide and links below **before** you run the Azure ARM template. We have a pre-requisites script that runs before the deployment to check on the permissions needed.

Click [here](https://support.profisee.com/wikis/2022_r2_support/deploying_the_AKS_cluster_with_the_arm_template) for a detailed deployment guide for Profisee ver. 2022R2 and [here](https://support.profisee.com/lms/courseinfo?id=00u00000000002b00aM&mode=browsecourses) for video training course and slide deck.


Here's **what** you will need. You will need a license tied to the DNS URL that will be used by the environment (ex. customer.eastus2.cloudapp.azure.com OR YourOwnEnvironment.Customer.com) This license can be acquired from [Profisee Support](https://support.profisee.com/aspx/ProfiseeCustomerHome).

Here's **what** will be deployed, or used if available, by the ARM template:
1. An AKS Cluster with a **publicly** accessible Management API.
2. Two Public IPs for Ingress and Egress.
3. A Load Balancer needed for Nginx.
4. A SQL Server, or we'll use one that you already have. You can either pre-create the database or let the Managed Identity create one for you.
5. A Storage account, or use one that you already have. If you precreate the storage account, please make sure to precreate the files share that you'd like to use.
6. A DNS entry into a zone, assuming the necessary permissions are there. If you use external DNS, you'd have to update/create the record to match the Egress IP.
7. A free Let's Encrypt certificate, if you choose that option. Please be aware that if you plan on using your own domain with Let's Encrypt you'll need to make sure that if there is a [CAA record set](https://letsencrypt.org/docs/caa/) on your domain it allows Let's Encrypt as the Issuing Authority.

Here's **how** it will be deployed. You must have a Managed Identity created to run the deployment. This Managed Identity must have the following permissions ONLY when running a deployment. After it is done, the Managed Identity can be deleted. Based on your ARM template choices, you will need some or all of the following permissions assigned to your Managed Identity:
1. **Contributor** role to the Resource Group where AKS will be deployed. This can either be assigned directly to the Resource Group OR at Subscription level. **Note:** If you want to allow the Deployment Managed Identity to create the resource group for you, then this permission would have to be at Subscription level.
2. **DNS Zone Contributor** role to the particular DNS zone where the entry will be created OR **Contributor** role to the DNS Zone Resource Group.This is needed only if updating DNS hosted in Azure. To follow best practice for least access, the DNS Zone Contributor on the zone itself is the recommended option.
3. **Application Administrator** role in Azure Active Directory, so the Application registration can be created by the Deployment Managed Identity and the required permissions can be assigned to it.
4. **Managed Identity Contributor** and **User Access Administrator** at the Subscription level. These two are needed in order for the ARM template Deployment Managed Identity to be able to create the Key Vault specific Managed Identity that will be used by Profisee to pull the values stored in the Key Vault, as well as to assign the AKSCluster-agentpool the Managed Identity Operator role (to the Resource and Infrastructure Resource groups) and Virtual Machine Operator role (to the Infrastructure Resource group). If Key Vault will not be used, these roles are not required.
5. **Key Vault requirements**. If you are using a Key Vault, please make sure that your Access Policy page has a checkmark on "Azure Resource Manager for template deployment". Otherwise, MS will not be able to validate the ARM template's access against your Key Vault and will result in validation failure in the ARM template before it begins deployment.
6. **Purview Integration requirements**. If Profisee will be configured to integrate with Microsoft Purview, a Purview specific Application Registration will need to be created and have the **Collections Admin** and **Data Curator Role** assigned in the Purview account at either collection or account level. It will also have to be assigned the User.Read **delegated** permission as well as the User.Read.All, Group.Read.All and GroupMember.Read.All **application** permissions (these 3 required Global Admin consent). During the ARM template deployment you will now have to provide the Purview collection friendly name, as seen in the Purview web portal, regardless if this is a sub-collection or the root collection of Purview.


## Upgrade instructions

For customers upgrading **from** v2022**R1** and earlier. There are two changes that require careful consideration:
1. Purview Collections integration necessitated changes in the ARM template, container and deployment templates. Please **DO** review the upgrade instructions posted below **before** you start the upgrade process.
2. History tables improvements - you will need to run this immediately **after** the upgrade to 2022**R2**, one time **only**.

Please read through the upgrade instructions both here and in our Support portal and prepare for the upgrade process. The instructions below are combined for both Purview Collections and the History table improvements.

For customers who do **NOT** use Purview.
1. Connect to your cluster from the Azure portal or powershell. For customers running Private PaaS please connect to your jumpbox first, then connect via powershell or Lens.
2. Run the following commands (if you do not have the repo added that would be the first step):
helm -n profisee repo add profisee https://profiseedev.github.io/kubernetes
helm repo update
helm upgrade -n profisee profiseeplatform profisee/profisee-platform --reuse-values --set image.tag=2022r2.0
kubectl logs -n profisee profisee-0 -f #this will allow you to follow the upgrade as it is happening
3. This will upgrade your installation to version 2022r2.0 while keeping the rest of the values.
4. To run the Histroy tables upgrade please follow the steps as outlined [here](https://support.profisee.com/wikis/release_notes/upgrade_considerations_and_prerequisites)

For customers who **DO** use Purview.
1. Connect to your cluster from the Azure portal or powershell. For customers running Private PaaS please connect to your jumpbox first, then connect via powershell or Lens.
2. Locate your Purview collection Id by visiting your MS Purview Governance Portal. Go to the collection where you would like Profisee to deploy to. Your URL will look like so: web.purview.azure.com/resource/**YourPurviewAccountName**/main/datasource/collections?collection=**ThisIsTheCollectionId**&feature.tenant=**YourAzureTenantId**
3. Run the following commands (if you do not have the repo added that would be the first step):
helm -n profisee repo add profisee https://profiseedev.github.io/kubernetes
helm repo update
helm upgrade -n profisee profiseeplatform profisee/profisee-platform --reuse-values --set cloud.azure.purview.collectionId=YourCollectionId --set image.tag=2022r2.0
kubectl logs -n profisee profisee-0 -f #this will allow you to follow the upgrade as it is happening
4. This will upgrade your installation to version 2022r2.0 and provide the required collection Id while keeping the rest of the values. Failure to provide the collection Id would result in a failed upgrade.
5. To run the Histroy tables upgrade please follow the steps as outlined [here](https://support.profisee.com/wikis/release_notes/upgrade_considerations_and_prerequisites)


## Deployment steps

Click the "Deploy to Azure" button at the beginning of this document.
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fprofiseeadmin%2Fkubernetes%2Fmaster%2FAzure-ARM%2Fazuredeploy.json/createUIDefinitionUri/https%3A%2F%2Fraw.githubusercontent.com%2Fprofiseeadmin%2Fkubernetes%2Fmaster%2FAzure-ARM%2FcreateUIDefinition.json)

## Troubleshooting

All troubleshooting is in the [Wiki](https://github.com/profiseedev/kubernetes/wiki)
All troubleshooting is in the [Wiki](https://github.com/profisee/kubernetes/wiki)

Loading