Since I did Install Gardener on Rancher, it has become my Kubernetes platform of choice.
Lately, I ran into an issue creating new clusters leveraging Cloudflare though:
To troubleshoot this, I install gardenctl in 4 steps:
- Package Manager
- kubectl
- kubelogin
- gardenctl
Package Manager
Working on Windows, I leverage Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
kubectl
To start with, I copy the configuration file from when I did Prepare your SAP Data Intelligence installation with Rancher:
choco install kubernetes-cli
mkdir ~/.kube
cp config ~/.kube/config
kubelogin
I need to put the kubelogin binary on mypath under the name kubectl-oidc_login so that the kubectl plugin mechanism can find it when I invoke kubectl oidc-login:
choco install kubelogin
cp C:ProgramDatachocolateybinkubectl.exe C:ProgramDatachocolateybinkubectl-oidc_login.exe
gardenctl
gardenctl needs a session ID and kube configuration but is otherwise easy to install:
choco install gardenctl-v2
if ( !(Test-Path Env:GCTL_SESSION_ID) -and !(Test-Path Env:TERM_SESSION_ID) ) { $Env:GCTL_SESSION_ID = [guid]::NewGuid().ToString() }
gardenctl-v2 config set-garden architectsap --kubeconfig C:UsersFrankkubeconfig-garden-garden.yaml
gardenctl-v2 kubectl-env powershell
$Env:KUBECONFIG = 'C:UsersFrankAppDataLocalTempgarden3f3a762c-6e24-4b09-b899-e46fecb72db8kubeconfig.yaml';
kubectl get controllerregistration
After logging in with dex:
The output confirms that I am missing DNSRecord/cloudflare-dns:
PS C:WINDOWSsystem32> kubectl get controllerregistration
NAME RESOURCES AGE
dns-external DNSProvider/aws-route53, DNSProvider/alicloud-dns, DNSProvider/azure-dns, DNSProvider/google-clouddns, DNSProvider/openstack-designate, DNSProvider/cloudflare-dns, DNSProvider/infoblox-dns 4d23h
networking-calico Network/calico 4d23h
os-gardenlinux OperatingSystemConfig/gardenlinux 4d23h
os-suse-chost OperatingSystemConfig/suse-chost 4d23h
os-ubuntu OperatingSystemConfig/ubuntu 4d23h
provider-gcp Infrastructure/gcp, ControlPlane/gcp, Worker/gcp, BackupBucket/gcp, BackupEntry/gcp, DNSRecord/google-clouddns 4d23h
runtime-gvisor ContainerRuntime/gvisor
Which is luckily easy enough to add thanks to Tim Schrodi: