func getDetailsFromDockerConfigSecret(secretGetter client.SecretsInterface, secret string) (map[string]string, error) { configSecret, err := secretGetter.Get(secret) if err != nil { return nil, err } dockerConfigJSONBytes := configSecret.Data[api.DockerConfigJsonKey] var secretData map[string]interface{} if err = json.Unmarshal(dockerConfigJSONBytes, &secretData); err != nil { return nil, err } var authdata map[string]interface{} var hostname string for key, value := range secretData["auths"].(map[string]interface{}) { hostname = key authdata = value.(map[string]interface{}) } token := authdata["auth"].(string) decodedToken, err := base64.StdEncoding.DecodeString(token) if err != nil { return nil, err } parts := strings.SplitN(string(decodedToken), ":", 2) if len(parts) != 2 { return nil, errors.New("Invalid token in docker config secret") } user := parts[0] password := parts[1] regDetails := make(map[string]string) regDetails["DEIS_REGISTRY_USERNAME"] = user regDetails["DEIS_REGISTRY_PASSWORD"] = password regDetails["DEIS_REGISTRY_HOSTNAME"] = hostname return regDetails, nil }
func getDetailsFromRegistrySecret(secretGetter client.SecretsInterface, secret string) (map[string]string, error) { regSecret, err := secretGetter.Get(secret) if err != nil { return nil, err } regDetails := make(map[string]string) for key, value := range regSecret.Data { regDetails[key] = string(value) } return regDetails, nil }
func installationStarted(c kclient.PodInterface, name string, s kclient.SecretsInterface) wait.ConditionFunc { return func() (bool, error) { pod, err := c.Get(name) if err != nil { return false, err } if pod.Status.Phase == kapi.PodPending { return false, nil } // delete a secret named the same as the pod if it exists if secret, err := s.Get(name); err == nil { if secret.Annotations[newcmd.GeneratedForJob] == "true" && secret.Annotations[newcmd.GeneratedForJobFor] == pod.Annotations[newcmd.GeneratedForJobFor] { if err := s.Delete(name); err != nil { glog.V(4).Infof("Failed to delete install secret %s: %v", name, err) } } } return true, nil } }