Secrets

Edit

A Secret is an object that contains a small amount of sensitive data such as a password, a token, or a key. Such information might otherwise be put in a Pod specification or in an image; putting it in a Secret object allows for more control over how it is used, and reduces the risk of accidental exposure.

Create a Secret

Sign in with project-regular account, enter into one project such as demo-project created in Getting Start with Multi-Tenant Management, then select Configuration Center → Secrets.

Create a Secret

Step 1: Fill in Basic Information

1.1. Click Create Secret button, then fill in basic information in the pop-up window. There are two ways to create a Secret, i.e., UI Mode and Edit Mode. The following mainly introduces each step of UI mode. If you prefer edit mode, you can click on the Edit Mode button, which supports yaml format and json format. Edit mode makes it easy for users who are used to editing yaml-like file directly.

1.2. On the basic information page, enter the name of the Secret. You can also fill in the description as necessary.

  • Name: a concise and clear name for this Secret, which is convenient for users to browse and search.
  • Alias: helps you better distinguish resources and supports languages other than English.
  • Description: a brief introduction to this Secret.

Click Next when you’re done.

Basic Information

Step 2: Secret Settings

In the Secret settings, there are four types of secret as below are supported:

Default (Opaque)

Default (Opaque): Secret in base 64 encoding format, used to store passwords, sensitive data, etc. See the following example:

  1. Data:
  2. Password: hello123
  3. Username: guest

TLS (kubernetes.io/tls)

TLS (kubernetes.io/tls): Commonly used to save information such as TLS certificates and private keys. It can be used to encrypt Ingress. The TLS secret must contain keys named tls.crt and tls.key, saved with Credential and Private Key. See the following example:

  1. apiVersion: v1
  2. Data:
  3. Tls.crt: base64 encoded cert
  4. Tls.key: base64 encoded key
  5. Kind: Secret
  6. Metadata:
  7. Name: testsecret
  8. Namespace: default
  9. Type: kubernetes.io/tls

Image Repository Secret

Image Repository Secret (kubernetes.io/dockerconfigjson): It is used to store the authentication information of an image registry, such as the following information, see Image Registry:

  • Repository address: dockerhub.qingcloud.com
  • Username: guest
  • Password: guest
  • Email: 123@test.com

Note: If there is a json type of image repository secret, you need to refer to the following steps to create:

Assume the private image repository is uc.gcr.io, then you need to input _json_key in User Name, and paste the json content in password. Click Create to finish.

Secrets - 图3

When you create a workload, choose the Image Repository Secret that you created in the previous step, then input the image name directly, it will return the search result.

Secrets - 图4

Custom:

Custom: Allows users to create a type (type) that is similar to the default (Opaque) type. Both of them are key-value pairs.

Secret Settings

Using a Secret

Secrets can be mounted as data volumes or exposed as environment variables to be used by a container in a Pod.

  • In Volume, click on Reference Config Center, then select the created Secret.
  • In the Environment Variables, click Reference Config Center then select the created key.

Using a Secret

Using a Secret

For more information on how to use the Secret, see Quick-Start - Deploy a MySQL Application.

Create Common Used Secrets

Create Secret of DockerHub

Enter into Configuration Center→ Secrets, click Create.

Secret List

Enter its name, e.g. dockerhub-id, then choose Next.

Secret Basic Info

Select Image Repository Secret from the dropdown list, enter docker.io into Registry Address, then input your DockerHub user name and password. Click Create when you are done.

Secret Settings

Create GitHub

Creating a GitHub secret is similiar as above. Enter its name, e.g. github-id, and choose Account Password Secret. Then input your GitHub user name and password, and click Create.

GitHub Secret