func CreateDiscoveryDeploymentAndSecret(s *kubeadmapi.MasterConfiguration, client *clientset.Clientset, caCert *x509.Certificate) error { kd := newKubeDiscovery(s, caCert) if _, err := client.Extensions().Deployments(api.NamespaceSystem).Create(kd.Deployment); err != nil { return fmt.Errorf("<master/discovery> failed to create %q deployment [%v]", kubeDiscoveryName, err) } if _, err := client.Secrets(api.NamespaceSystem).Create(kd.Secret); err != nil { return fmt.Errorf("<master/discovery> failed to create %q secret [%v]", kubeDiscoverySecretName, err) } fmt.Println("<master/discovery> created essential addon: kube-discovery, waiting for it to become ready") start := time.Now() wait.PollInfinite(apiCallRetryInterval, func() (bool, error) { d, err := client.Extensions().Deployments(api.NamespaceSystem).Get(kubeDiscoveryName) if err != nil { return false, nil } if d.Status.AvailableReplicas < 1 { return false, nil } return true, nil }) fmt.Printf("<master/discovery> kube-discovery is ready after %f seconds\n", time.Since(start).Seconds()) return nil }
// GetSecretList - return all secrets in the given namespace. func GetSecretList(client *client.Clientset, namespace *common.NamespaceQuery, dsQuery *dataselect.DataSelectQuery) (*SecretList, error) { secretList, err := client.Secrets(namespace.ToRequestParam()).List(api.ListOptions{ LabelSelector: labels.Everything(), FieldSelector: fields.Everything(), }) if err != nil { return nil, err } return NewSecretList(secretList.Items, dsQuery), err }
// GetSecretDetail returns returns detailed information about a secret func GetSecretDetail(client *client.Clientset, namespace, name string) (*SecretDetail, error) { log.Printf("Getting details of %s secret in %s namespace", name, namespace) rawSecret, err := client.Secrets(namespace).Get(name) if err != nil { return nil, err } return getSecretDetail(rawSecret), nil }
// CreateSecret - create a single secret using the cluster API client func CreateSecret(client *client.Clientset, spec SecretSpec) (*Secret, error) { namespace := spec.GetNamespace() secret := &api.Secret{ ObjectMeta: api.ObjectMeta{ Name: spec.GetName(), Namespace: namespace, }, Type: spec.GetType(), Data: spec.GetData(), } _, err := client.Secrets(namespace).Create(secret) return NewSecret(secret), err }