@wallyworld many thanks for the prompt but there is something that I am missing.
When I posted originally I was running charmed-kubernetes vanilla without the openstack-integrator (which gives some issues). I’ve since rebuilt with openstack-integrator, in search of the loadbalancer configuration.
I managed to get this working with a guess combination of setting ‘floating-network-id’, ‘lb-floating-network’ (both set to the external provider network) and ‘subnet-id’ (set to the subnet in openstack hosting the k8s stuff). I also have to ‘use-default-secgroup’ in the model, and add the ‘subnet-id’ subnet to permit on the ingress of default - this to permit the loadbalancer to connect. With all this, the config basically works in kubectl from outside, with one issue of the certificate not describing the lb ip address.
I try to bootstrap the k8s with a loadbalancer;
juju bootstrap myk8s --debug --config controller-service-type=loadbalancer
[...]
21:03:03 DEBUG juju.kubernetes.provider bootstrap.go:432 creating controller service:
&Service{ObjectMeta:{controller-service controller-myk8s 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[juju-app:controller] map[juju.io/controller:ca994d22-efab-45b6-8830-995b94d1f4ee] [] [] []},Spec:ServiceSpec{Ports:[]ServicePort{ServicePort{Name:api-server,Protocol:,Port:17070,TargetPort:{0 17070 },NodePort:0,},},Selector:map[string]string{juju-app: controller,},ClusterIP:,Type:LoadBalancer,ExternalIPs:[],SessionAffinity:,LoadBalancerIP:,LoadBalancerSourceRanges:[],ExternalName:,ExternalTrafficPolicy:,HealthCheckNodePort:0,PublishNotReadyAddresses:false,SessionAffinityConfig:nil,IPFamily:nil,TopologyKeys:[],},Status:ServiceStatus{LoadBalancer:LoadBalancerStatus{Ingress:[]LoadBalancerIngress{},},},}
21:03:04 DEBUG juju.kubernetes.provider bootstrap.go:466 polling k8s controller svc DNS, in 1 attempt, controller service address not provisioned
21:03:07 DEBUG juju.kubernetes.provider bootstrap.go:466 polling k8s controller svc DNS, in 2 attempt, controller service address not provisioned
21:03:10 DEBUG juju.kubernetes.provider bootstrap.go:466 polling k8s controller svc DNS, in 3 attempt, controller service address not provisioned
and lots more like that.
I don’t understand the suggestion to set e.g. controller-external-ips here, I was expecting such would be dynamic.