Secrets
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.
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.
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:
Data:
Password: hello123
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:
apiVersion: v1
Data:
Tls.crt: base64 encoded cert
Tls.key: base64 encoded key
Kind: Secret
Metadata:
Name: testsecret
Namespace: default
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.
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.
Custom:
Custom: Allows users to create a type (type) that is similar to the default (Opaque) type. Both of them are key-value pairs.
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.
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.
Enter its name, e.g. dockerhub-id
, then choose Next.
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.
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.