Question: In most examples about using secrets in Kubernetes, you can find similar examples:

```
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: User
  password: **********

```

What is the purpose of `type: Opaque` in the definition above? What other types (and for which use cases) are possible to specify there?

Answer: 
All types:

```
SecretType = "Opaque"                                 // Opaque (arbitrary data; default)
SecretType = "kubernetes.io/service-account-token"    // Kubernetes auth token
SecretType = "kubernetes.io/dockercfg"                // Docker registry auth
SecretType = "kubernetes.io/dockerconfigjson"         // Latest Docker registry auth

```

To learn more, see [Secrets design document](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/auth/secrets.md).
The source code lists all the types:

<https://github.com/kubernetes/kubernetes/blob/release-1.14/pkg/apis/core/types.go#L4447>