| 107 | } |
| 108 | |
| 109 | func SetupControllerConfig(client crclient.Client) error { |
| 110 | if internalConfig != nil { |
| 111 | return fmt.Errorf("internal controller configuration is already set up") |
| 112 | } |
| 113 | if err := setDefaultPodSecurityContext(); err != nil { |
| 114 | return err |
| 115 | } |
| 116 | if err := setDefaultContainerSecurityContext(); err != nil { |
| 117 | return err |
| 118 | } |
| 119 | if err := setDefaultOverrideConfig(); err != nil { |
| 120 | return err |
| 121 | } |
| 122 | |
| 123 | internalConfig = &controller.OperatorConfiguration{} |
| 124 | |
| 125 | namespace, err := infrastructure.GetNamespace() |
| 126 | if err != nil { |
| 127 | return err |
| 128 | } |
| 129 | configNamespace = namespace |
| 130 | |
| 131 | config, err := getClusterConfig(configNamespace, client) |
| 132 | if err != nil { |
| 133 | return err |
| 134 | } |
| 135 | if config == nil { |
| 136 | internalConfig = defaultConfig.DeepCopy() |
| 137 | } else { |
| 138 | syncConfigFrom(config) |
| 139 | } |
| 140 | |
| 141 | defaultRoutingSuffix, err := discoverRouteSuffix(client) |
| 142 | if err != nil { |
| 143 | return err |
| 144 | } |
| 145 | defaultConfig.Routing.ClusterHostSuffix = defaultRoutingSuffix |
| 146 | if internalConfig.Routing.ClusterHostSuffix == "" { |
| 147 | internalConfig.Routing.ClusterHostSuffix = defaultRoutingSuffix |
| 148 | } |
| 149 | |
| 150 | clusterProxy, err := proxy.GetClusterProxyConfig(client) |
| 151 | if err != nil { |
| 152 | return err |
| 153 | } |
| 154 | defaultConfig.Routing.ProxyConfig = clusterProxy |
| 155 | internalConfig.Routing.ProxyConfig = proxy.MergeProxyConfigs(clusterProxy, internalConfig.Routing.ProxyConfig) |
| 156 | |
| 157 | logCurrentConfig() |
| 158 | return nil |
| 159 | } |
| 160 | |
| 161 | func IsSetUp() bool { |
| 162 | return internalConfig != nil |