in cmd/hub/kube/kubernetes.go [58:143]
func CaptureKubernetes(component *manifest.ComponentRef, stackBaseDir string, componentsBaseDir string,
componentOutputs parameters.CapturedOutputs) parameters.CapturedOutputs {
outputs := make(parameters.CapturedOutputs)
componentName := manifest.ComponentQualifiedNameFromRef(component)
flavor := "k8s-aws"
if o, exist := componentOutputs[parameters.OutputQualifiedName(kubernetesFlavorOutput, componentName)]; exist {
flavor = util.String(o.Value)
}
domainQName := parameters.OutputQualifiedName(stackDomainOutput, componentName)
if _, exists := componentOutputs[domainQName]; !exists {
util.Warn("Component `%s` declared to provide Kubernetes but no `%s` output found", componentName, domainQName)
if len(componentOutputs) > 0 {
log.Print("Outputs:")
parameters.PrintCapturedOutputs(componentOutputs)
}
return outputs
}
switch flavor {
case "k8s-aws":
var missing []string
for _, outputName := range KubernetesKeysParameters {
outputQName := parameters.OutputQualifiedName(outputName, componentName)
if _, exists := componentOutputs[outputQName]; !exists {
missing = append(missing, outputName)
}
}
if len(missing) > 0 {
util.Warn("Component `%s` declared to provide Kubernetes but some key/certs output(s) are missing: %v",
componentName, missing)
}
case "eks":
caQName := parameters.OutputQualifiedName(kubernetesApiCaCertOutput, componentName)
_, exists := componentOutputs[caQName]
if !exists {
util.Warn("Component `%s` declared to provide EKS Kubernetes but no `%s` output found", componentName, caQName)
if config.Debug && len(componentOutputs) > 0 {
log.Print("Outputs:")
parameters.PrintCapturedOutputs(componentOutputs)
}
}
case "openshift":
tokenQName := parameters.OutputQualifiedName(kubernetesApiTokenOutput, componentName)
_, exists := componentOutputs[tokenQName]
if !exists {
util.Warn("Component `%s` declared to provide OpenShift Kubernetes but no `%s` output found", componentName, tokenQName)
if config.Debug && len(componentOutputs) > 0 {
log.Print("Outputs:")
parameters.PrintCapturedOutputs(componentOutputs)
}
}
case "gke":
caQName := parameters.OutputQualifiedName(kubernetesApiCaCertOutput, componentName)
tokenQName := parameters.OutputQualifiedName(kubernetesApiTokenOutput, componentName)
_, caExists := componentOutputs[caQName]
_, tokenExists := componentOutputs[tokenQName]
if !caExists || !tokenExists {
util.Warn("Component `%s` declared to provide GKE Kubernetes but no `%s` or `%s` output found", componentName, tokenQName, caQName)
if config.Debug && len(componentOutputs) > 0 {
log.Print("Outputs:")
parameters.PrintCapturedOutputs(componentOutputs)
}
}
case "aks":
caQName := parameters.OutputQualifiedName(kubernetesApiCaCertOutput, componentName)
tokenQName := parameters.OutputQualifiedName(kubernetesApiTokenOutput, componentName)
_, caExists := componentOutputs[caQName]
_, tokenExists := componentOutputs[tokenQName]
if !caExists || !tokenExists {
util.Warn("Component `%s` declared to provide AKS Kubernetes but no `%s` or `%s` output found", componentName, tokenQName, caQName)
if config.Debug && len(componentOutputs) > 0 {
log.Print("Outputs:")
parameters.PrintCapturedOutputs(componentOutputs)
}
}
}
return outputs
}