github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/apigateway/helm.go (about) 1 package apigateway 2 3 import ( 4 toolsetslatest "github.com/caos/orbos/internal/operator/boom/api/latest" 5 "github.com/caos/orbos/internal/operator/boom/application/applications/apigateway/crds" 6 "github.com/caos/orbos/internal/operator/boom/application/applications/apigateway/helm" 7 grafananet "github.com/caos/orbos/internal/operator/boom/application/applications/monitoring/network" 8 argocdnet "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/network" 9 "github.com/caos/orbos/internal/operator/boom/templator/helm/chart" 10 "github.com/caos/orbos/internal/utils/helper" 11 "github.com/caos/orbos/mntr" 12 "github.com/caos/orbos/pkg/secret/read" 13 ) 14 15 func (a *Ambassador) HelmPreApplySteps(monitor mntr.Monitor, toolsetCRDSpec *toolsetslatest.ToolsetSpec) ([]interface{}, error) { 16 17 ret := make([]interface{}, 0) 18 if toolsetCRDSpec.Reconciling != nil && toolsetCRDSpec.Reconciling.Network != nil { 19 host := crds.GetHostFromConfig(argocdnet.GetHostConfig(toolsetCRDSpec.Reconciling.Network)) 20 ret = append(ret, host) 21 mapping := crds.GetMappingFromConfig(argocdnet.GetMappingConfig(toolsetCRDSpec.Reconciling.Network)) 22 ret = append(ret, mapping) 23 } 24 25 if toolsetCRDSpec.Monitoring != nil && toolsetCRDSpec.Monitoring.Network != nil { 26 host := crds.GetHostFromConfig(grafananet.GetHostConfig(toolsetCRDSpec.Monitoring.Network)) 27 ret = append(ret, host) 28 mapping := crds.GetMappingFromConfig(grafananet.GetMappingConfig(toolsetCRDSpec.Monitoring.Network)) 29 ret = append(ret, mapping) 30 } 31 32 return ret, nil 33 } 34 35 func (a *Ambassador) HelmMutate(monitor mntr.Monitor, toolsetCRDSpec *toolsetslatest.ToolsetSpec, resultFilePath string) error { 36 37 if err := helper.DeleteFirstResourceFromYaml(resultFilePath, "v1", "Pod", "ambassador-test-ready"); err != nil { 38 return err 39 } 40 41 return nil 42 } 43 44 func (a *Ambassador) SpecToHelmValues(monitor mntr.Monitor, toolsetCRDSpec *toolsetslatest.ToolsetSpec) interface{} { 45 imageTags := helm.GetImageTags() 46 image := "quay.io/datawire/aes" 47 48 if toolsetCRDSpec != nil && toolsetCRDSpec.APIGateway != nil { 49 helper.OverwriteExistingValues(imageTags, map[string]string{ 50 image: toolsetCRDSpec.APIGateway.OverwriteVersion, 51 }) 52 helper.OverwriteExistingKey(imageTags, &image, toolsetCRDSpec.APIGateway.OverwriteImage) 53 } 54 55 values := helm.DefaultValues(imageTags, image) 56 57 spec := toolsetCRDSpec.APIGateway 58 59 if spec == nil { 60 return values 61 } 62 63 if spec.ReplicaCount != 0 { 64 values.ReplicaCount = spec.ReplicaCount 65 } 66 67 if spec.Affinity != nil { 68 values.Affinity = spec.Affinity 69 } 70 71 if spec.Service != nil { 72 values.Service.Type = spec.Service.Type 73 values.Service.LoadBalancerIP = spec.Service.LoadBalancerIP 74 if spec.Service.Ports != nil { 75 ports := make([]*helm.Port, 0) 76 for _, v := range spec.Service.Ports { 77 ports = append(ports, &helm.Port{ 78 Name: v.Name, 79 Port: v.Port, 80 TargetPort: v.TargetPort, 81 NodePort: v.NodePort, 82 }) 83 } 84 values.Service.Ports = ports 85 } 86 } 87 88 if spec.NodeSelector != nil { 89 for k, v := range spec.NodeSelector { 90 values.NodeSelector[k] = v 91 values.Redis.NodeSelector[k] = v 92 } 93 } 94 95 if spec.Tolerations != nil { 96 for _, tol := range spec.Tolerations { 97 values.Tolerations = append(values.Tolerations, tol) 98 } 99 } 100 101 values.CreateDevPortalMapping = spec.ActivateDevPortal 102 103 if spec.Resources != nil { 104 values.Resources = spec.Resources 105 } 106 107 // default is false 108 values.Service.Annotations.Module.Config.EnableGRPCWeb = spec.GRPCWeb 109 // default is true 110 if spec.ProxyProtocol != nil { 111 values.Service.Annotations.Module.Config.UseProxyProto = *spec.ProxyProtocol 112 } 113 114 if spec.Caching != nil { 115 if spec.Caching.Enable { 116 values.Redis.Create = true 117 } 118 119 if spec.Caching.Resources != nil { 120 values.Redis.Resources = spec.Caching.Resources 121 } 122 } 123 124 licenceKey, err := read.GetSecretValueOnlyIncluster(spec.LicenceKey, spec.ExistingLicenceKey) 125 if err != nil { 126 monitor.Debug("No licence key found") 127 return values 128 } 129 if licenceKey != "" { 130 values.LicenseKey.Value = licenceKey 131 } 132 133 return values 134 } 135 136 func (a *Ambassador) GetChartInfo() *chart.Chart { 137 return helm.GetChartInfo() 138 } 139 140 func (a *Ambassador) GetImageTags() map[string]string { 141 return helm.GetImageTags() 142 }