Azure Private Proxy Automation is needed
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 7
- Forks
- 2
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 3
Description
The purpose of this issue is two-fold. First, we want to write down the need to automate this process as part of our CLI deployment process. Second, we want to document how to do the process manually until we can do this in code.
Steps:
-
Run the
persistentstep in the Azure Workload steps. This will provision a BastionHost, its subnet and required adjacent resources. -
Run the
clustersstep in the Azure Workload steps. This will configure access between the BastionHost Subnet and the Private Subnet in which the JumpBox will exist and where the AKS cluster API lives. -
Go to the Azure Portal (click-ops! yay!). You are going to go to Create Resource > Compute > Virtual Machine > Create.
a. Basics: Corresponding subscription, resource group, appropriate VM name, Azure-selected zone, Trusted launch virtual machines, Image: Ubuntu Server 24.04 LTS, VM arch: x64, Size: Standard_B1ms, Authentication type: SSH public key, Username:
ptd-admin, Generate a new SSH key, RSA SSH format, No public inbound ports
b. Disks: Don't change anything about the disk provided (30GB)
c. Networking: The only vnet that should be part of the subscription, choose the private subnet, no public IP, Basic NIC NSG, no public inbound ports, delete NIC when VM is deleted
d. Management: Login with Microsoft Entra ID check
e. Go to Review + Create; don't change the phone number to yours
f. This will prompt you to download a private key, download the key and upload it to our Team vault in 1Password. Share the name of the secret in#ptd-backstageso we all know what it is. (suggestions welcome on how to improve this)
You may also need to runchmod 400 file_namelocally before using it. -
Once the JumpBox has been created (see step 3), you are going to go to Virtual Machines in your Azure Portal; click on the JumpBox instance, then go to Settings > Properties and scroll all the way down to
Resource ID, you are going to need this value, note it down. -
Azure Portal > Bastions: Copy the name of the BastionHost
-
Go to the AKS Networking tab and add the JumpBox Private IP address followed by a /32 mask to allow traffic from the instance to the cluster. (Not required for private clusters.)
-
Open a new terminal, run
az loginand set up with the corresponding Azure subscription of the workload cluster -
You are going to need 3 terminal windows to configure this.
a. First terminal:az network bastion tunnel --name $BASTION_HOST --resource-group $RG_NAME --target-resource-id $JUMPBOX_RESOURCE_ID --resource-port 22 --port 22001
b. Second terminal:ssh -ND 1080 ptd-admin@localhost -p 22001 -i <path-to-pem-file from step 3.f.>
(This will hang, open third terminal for the next command.)
c. Third terminal:curl -v --socks5 localhost:1080 https://<K8S-API>:443 -k
(On Overview tab of Kubernetes cluster in the portal.) -
Log into AWS, change kube context to the Control Room of the workload before running CLI
The third terminal is to confirm that the proxy is properly working, you can then use this one to run
ptd ensure
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Azure Workload persistent and clusters steps and the existing CLI deployment flow; no repository files or tests are named. The work is done when the manual private-proxy procedure is documented and the required Bastion, JumpBox, AKS access, and proxy validation steps are automated for ptd ensure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, kubernetes
- Domain
- cli, cloud, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100