IBM Cloud Docs
使用环境变量引用私钥和配置映射 (CLI)

使用环境变量引用私钥和配置映射 (CLI)

在 Code Engine中,创建私钥和 configmap 后,存储为“键/值”对的信息可由应用程序,作业或作为环境变量的函数工作负载通过引用完整私钥或 configmap 或引用个别密钥来使用。

使用私钥作为环境变量类似于使用 configmap 作为环境变量。 使用私钥时,会对数据进行编码。

更新具有引用 configmap 或 secret 的环境变量的应用程序,作业或函数时,请考虑以下信息。

  • 当您更新具有完全引用 configmap (或私钥) 的环境变量的应用程序,作业或函数以完全引用其他 configmap (或私钥) 时,完全引用将按设置顺序覆盖其他完整引用 (最后引用的集合将覆盖第一个集合)。
  • 当您更新具有环境变量的应用程序,作业或函数,该环境变量引用了一个 configmap (或私钥) 中的密钥以引用另一个 configmap (或私钥) 中的相同密钥时,将使用最后引用的密钥。
  • 更新具有完全引用 configmap (或 secret) 的环境变量的应用程序,作业或函数以添加对特定密钥的引用时,特定密钥引用将覆盖完整 configmap (或 secret) 引用。

有关使用 CLI 引用配置映射或私钥的基本信息,请参阅 使用 CLI 引用配置映射使用 CLI 引用私钥

可以针对私钥或配置映射完成以下场景。

使用 CLI 引用完整私钥

私钥和配置映射由键/值对组成。 环境变量是在引用完整密钥或 configmap 时按密钥提供条目的结果。 如果多个私钥 (或 configmap) 包含相同的指定密钥,那么您只会在引用的私钥或 configmap 中获取其中一个密钥。

在此场景中,创建包含用户名和密码的“键/值”对的私钥,然后在运行作业时引用完整私钥。 您可以更新密钥以添加密钥,然后演示在作业中使用新密钥。 当此场景使用私钥时,您可以通过在命令中替换 configmap 以使用相同的步骤来完全引用 configmap。secret

  1. 创建 mydatabasesec 私钥,并使用 --from-literal 选项为用户名和密码指定“键/值”对。

    ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd
    
  2. 使用 secret get 命令查看有关 mydatabasesec 私钥的详细信息。 将对密钥的 passwordusername 密钥的值进行编码。

    ibmcloud ce secret get -n mydatabasesec
    

    示例输出

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2020-10-14 14:07:59 -0400 EDT
    
    Data:
    ---
    password: YWJjZA==
    username: cmVhZGVy
    
  3. 在作业上设置环境变量以引用完整的 mydatabasesec 私钥。 在此示例中,让我们使用 --env-from-secret PREFIX=NAME 选项,其中 PREFIX=NAME 指定引用完整的 configmap,其中每个键都以 PREFIX 作为前缀。 通过使用 read_ 前缀,每个键都以 read_ 作为前缀。 因为缺省情况下 busybox 映像不会打印任何输出,所以 -c env 选项指定打印容器中的所有环境变量。

    ibmcloud ce job create -n demo -i busybox -c env --env-from-secret read_=mydatabasesec
    

    请考虑使用前缀来帮助确保作业或应用程序中的所有环境变量都是唯一的。 例如,如果您有包含密钥 abc 的私钥,那么这些环境变量将显示为 abc。 但是,如果添加前缀 (例如 read_),那么键将与前缀 (例如 read_aread_bread_c) 一起显示。 使用前缀还会对引用应用程序,作业或作业运行中的环境变量进行分组,并帮助您避免配置映射或私钥中的键重复。

  4. (可选) 查看 demo 作业的详细信息。 输出将显示对 mydatabasesec 私钥的完整引用。

    ibmcloud ce job get -n demo
    

    示例输出

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6s
    Created:      2022-05-04T15:04:16-04:00
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                   Value
        Secret full reference  read_=mydatabasesec
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  5. 运行使用 demo 作业配置的作业。

    ibmcloud ce jobrun submit --name demo1 --job demo
    
  6. 显示作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 在此示例中,显示 demo1 作业运行的日志。 请注意,日志输出中显示了带有前缀 read_ 的完整密钥 mydatabasesec 的密钥。 将私钥值添加到已解码的环境中。

    ibmcloud ce jobrun logs --jobrun demo1
    

    示例输出

    Getting logs for all instances of job run 'demo1'...
    Getting jobrun 'demo1'...
    Getting instances of jobrun 'demo1'...
    [...]
    
    HOSTNAME=demo1-0-0
    read_username=reader
    read_password=abcd
    JOB_INDEX=0
    CE_SUBDOMAIN=8aaon2dfwa0
    CE_JOBRUN=demo1
    [...]
    
  7. 使用 --from-file 选项更新 mydatabasesec 私钥以添加密钥。 此选项使用格式 --from-file FILE--from-file KEY=FILE。 在以下命令中,certificate 是密钥,cert.pem 是文件的名称。

    ibmcloud ce secret update -n mydatabasesec --from-file certificate=cert.pem
    
  8. 使用 secret get 命令查看有关已更新的 mydatabasesec 私钥的详细信息。 该私钥现在包含三个密钥: certificatepasswordusername。 将对私钥值进行编码。

    ibmcloud ce secret get -n mydatabasesec
    

    示例输出

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m13s
    Created:       2020-10-14 13:35:43 -0400 EDT
    
    Data:
    ---
    certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tLS0tDQphc2RmO2Frc2pkZmxrYWpzZGZsa2phc2xka2ZqYWxza2RqZmxha3NqZGZsaw0KLS0tLS1FTkQgQ0VSVEZJQ0lBVEUtLS0tLS0tLS0t
    password: YWJjZA==
    username: cmVhZGVy
    
  9. 运行使用 demo 作业的作业。 先前,您从 demo 作业引用了完整私钥 mydatabasesec。 要使作业将更新后的私钥与添加的 certificate 键/值对配合使用,请提交新的作业运行。 要更新应用程序以使用更新后的私钥,请重新启动应用程序。

    ibmcloud ce jobrun submit --name demo2 --job demo
    
  10. 使用 ibmcloud ce jobrun logs 命令显示作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 要显示作业运行的特定实例的日志,请将 --instance 选项与 jobrun logs 命令配合使用。 如果需要,请使用 jobrun get --name demo2 命令来显示此作业运行的详细信息,包括作业运行的实例。 在此示例中,显示正在运行的 demo2-0-0 实例的日志,其中 demo2 是作业运行的名称,0arrayindex0retryindex。 请注意,输出中显示了 certificateusernamepassword 完整密钥的密钥 mydatabasesec。 将私钥值添加到已解码的环境中。

ibmcloud ce jobrun logs --instance demo2-0-0

示例输出

Getting logs for job run instance 'demo2-0-0'...
[...]

read_certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
read_password=abcd
read_username=reader

使用 CLI 引用 configmap 的各个密钥

在此场景中,让我们创建一个包含多个键/值对的 configmap,然后引用作业中的特定键。 当此场景使用 configmap 时,您可以使用相同的常规步骤通过在命令中替换 secret for configmap 来引用具有私钥的各个密钥。

  1. 创建 mydatabase configmap,并使用 --from-literal KEY=VALUE 选项为名称和 URL 指定“键/值”对。

    ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl
    
  2. 使用 configmap get 命令查看有关 mydatabasecm configmap 的详细信息。

    ibmcloud ce configmap get -n mydatabasecm
    

    示例输出

    Getting configmap 'mydatabasecm'...
    OK
    
    Name:          mydatabasecm
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           16s
    Created:       2020-10-14 13:31:19 -0400 EDT
    
    Data:
    ---
    name: myname
    url: myurl
    
  3. 在作业上设置环境变量以引用 mydatabasecm configmap 中的 url 键。 使用 --env-from-configmap NAME:KEY_A,KEY_B 选项,其中 NAME:KEY_A 指定引用 configmap 的 KEY_A

    ibmcloud ce job create --name keydemo --image busybox --command env --env-from-configmap mydatabasecm:url
    
  4. 运行使用 keydemo 作业的作业。

    ibmcloud ce jobrun submit --name keydemo1 --job keydemo
    
  5. 使用 ibmcloud ce jobrun logs 命令显示作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 要显示作业运行的特定实例的日志,请将 --instance 选项与 jobrun logs 命令配合使用。 如果需要,请使用 jobrun get --name keydemo1 命令来显示此作业运行的详细信息,包括作业运行的实例。 请注意,输出中的 url 是唯一引用的键,并且作业未引用 name 键。

    ibmcloud ce jobrun logs --instance keydemo1-0-0
    

    示例输出

    Getting logs for job run instance 'keydemo1-0-0'...
    [...]
    
    url=myurl
    [...]
    

使用 CLI 覆盖引用

您可以覆盖引用的私钥和配置映射。 可以针对私钥或配置映射完成以下场景。

场景 A。 使用另一个完全引用的私钥覆盖完全引用的私钥

在此场景中,我们将使用 usernamepassword 密钥创建新的 mydatabasesec-writer 密钥,然后覆盖先前创建的 mydatabasesec 密钥中的 usernamepassword 密钥。 mydatabasesec 私钥包含 username=readerpassword=abcd 密钥。

完整引用将按设置顺序覆盖其他完整引用 (最后引用的集合将覆盖第一个集合)。

  1. writerjob 作业上设置环境变量以引用先前创建的完整 mydatabasesec 私钥。 mydatabasesec 私钥包含 username=readerpassword=abcd 密钥。

    ibmcloud ce job create -n writerjob -i busybox -c env --env-from-secret mydatabasesec
    
  2. (可选) 查看 writerjob 作业的详细信息。 输出将显示对 mydatabasesec 私钥的完整引用。

    ibmcloud ce job get -n writerjob
    

    示例输出

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 运行使用 writerjob 作业的作业。

    ibmcloud ce jobrun submit --name writerjob1 --job writerjob
    
  4. 显示作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 在此示例中,显示 writerjob1 作业运行的日志。 请注意,输出中显示了完整密钥 mydatabasesecusernamepassword 密钥。 将私钥值添加到已解码的环境中。

    ibmcloud ce jobrun logs --jobrun writerjob1
    

    示例输出

    Getting jobrun 'writerjob1'...
    Getting instances of jobrun 'writerjob1'...
    Getting logs for all instances of job run 'writerjob1'...
    OK
    [...]
    
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=abcd
    username=reader
    [...]
    
  5. 创建 mydatabasesec-writer 私钥,并使用 --from-literal 选项为用户名和密码指定“键/值”对。

    ibmcloud ce secret create --name mydatabasesec-writer --from-literal username=writer --from-literal password=wxyz
    
  6. 使用 secret get 命令查看有关 mydatabasesec-writer 私钥的详细信息。 将对密钥的 passwordusername 密钥的值进行编码。

    ibmcloud ce secret get -n mydatabasesec-writer
    

    示例输出

    Getting generic secret 'mydatabasesec-writer'...
    OK
    
    Name:          mydatabasesec-writer
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           14s
    Created:       2020-10-14 13:44:16 -0400 EDT
    
    Data:
    ---
    password: d3h5eg==
    username: d3JpdGVy
    
  7. 更新 writerjob 作业以引用完整 mydatabasesec-writer 私钥,并使用 write_ 前缀。

    ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer
    
  8. (可选) 查看已更新的 writerjob 作业的详细信息。 作业完全引用 mydatabasesecmydatabase-writer 私钥。

    ibmcloud ce job get -n writerjob
    

    示例输出

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m2s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                          Value  
        Secret full reference  mydatabasesec           
        Secret full reference  write_=mydatabasesec-writer   
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  9. 运行使用 writerjob 作业的作业。 由于 writerjob 作业已更新为同时引用 mydatabasesec 私钥和 mydatabasesec-writer 私钥,并且这两个私钥都包含 usernamepassword 的密钥,因此最后引用的完整私钥 mydatabasesec-writer 将覆盖 mydatabasesec 私钥。

    要使作业运行将作业的更新配置与对其完全引用的私钥的更新配合使用,请运行新作业。 要更新应用程序以使用更新后的私钥,请重新启动应用程序。

    ibmcloud ce jobrun submit --name writerjob2 --job writerjob
    
  10. 使用 ibmcloud ce jobrun logs 命令显示作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 要显示作业的所有实例的日志,请将 --jobrun 选项与 jobrun logs 命令配合使用。 要显示作业运行的特定实例的日志,请将 --instance 选项与 jobrun logs 命令配合使用。 如果需要,请使用 jobrun get --name writerjob2 命令来显示此作业运行的详细信息,包括作业运行的实例。 请注意,在输出中,mydatabasesec-writer 私钥的 usernamepassword 密钥会覆盖 mydatabasesec 私钥的密钥。 此外,在日志输出中,将显示带有前缀 write_ 的完整密钥 mydatabasesec-writer 的密钥。将 Secret 值添加到已解码的环境中。

ibmcloud ce jobrun logs --instance writerjob2-0-0

示例输出

Getting logs for job run instance 'writerjob2-0-0'...
[...]

certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
password=abcd
username=reader
write_password=wxyz
write_username=writer
[...]

方案 B。 使用密钥引用覆盖完全引用的私钥

当使用的密钥位于完全引用的私钥或 configmap 中时,对私钥或 configmap 中的密钥的引用始终会覆盖对私钥或 configmap 的完整引用,而不考虑顺序。

在此场景中,让我们使用先前创建的 mydatabasesecmydatabasesec-writer 私钥以及来自作业的私钥中的引用键。

  1. writerpic 作业上设置环境变量以引用 mydatabasesecmydatabasesec-writer 私钥中的特定密钥。 mydatabasesec 私钥包含 username=readerpassword=abcdcertificate=cert.pem 密钥。 mydatabasesec-writer 私钥包含 username=writerpassword=wxyz 密钥。

    ibmcloud ce job create -n writerpick -i busybox -c env --env-from-secret mydatabasesec-writer:username --env-from-secret mydatabasesec-writer:password --env-from-secret mydatabasesec
    
  2. (可选) 查看 writerpick 作业的详细信息。 输出显示对 mydatabasesec 私钥的完整引用以及对 mydatabasesec-writer 私钥的 passwordusername 密钥的密钥引用。

    ibmcloud ce job get -n writerpick
    

    示例输出

    Getting job 'writerpick'...
    OK
    
    Name:          writerpick
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           107s
    Created:       2021-02-12T07:16:46-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
        Secret key reference   password       mydatabasesec-writer.password  
        Secret key reference   username       mydatabasesec-writer.username  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 运行使用 writerpick 作业的作业。

    ibmcloud ce jobrun submit --name writerpick1 --job writerpick
    
  4. 使用 ibmcloud ce jobrun logs 命令显示 writerpick1 作业运行的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 要显示作业运行的特定实例的日志,请将 --instance 选项与 jobrun logs 命令配合使用。 如果需要,请使用 jobrun get --name writerpick1 命令来显示此作业运行的详细信息,包括作业运行的实例。 由于 writerpick 作业已更新为引用 mydatabasesec-writer 私钥中的特定密钥以及引用完整 mydatabasesec 私钥,因此对 mydatabasesec-writer 私钥中的 usernamepassword 密钥的引用将覆盖对完整私钥的引用。 将私钥值添加到已解码的环境中。

    ibmcloud ce jobrun logs --instance writerpick1-0-0
    

    示例输出

    Getting logs for job run instance 'writerpick1-0-0'...
    [...]
    
    username=writer
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=wxyz
    [...]
    

场景 C。 使用新密钥覆盖密钥引用

您可以更新对私钥或 configmap 中特定密钥的引用,并使用新值覆盖该值。

在此场景中,让我们使用先前创建的 mydatabasecm configmap,其中包含用于更新密钥值的 url:myurl 密钥。

  1. keyref 作业上设置环境变量以引用 mydatabasecm configmap 中的特定键。

    ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url
    
  2. (可选) 查看 keyref 作业的详细信息。 输出将显示对 mydatabasecm configmap 中的 url 键的键引用。

    ibmcloud ce job get -n keyref
    

    示例输出

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           65s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                     Name  Value  
        ConfigMap key reference  url   mydatabasecm.url  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 运行使用 keyref 作业的作业。

    ibmcloud ce jobrun submit --name keyref1 --job keyref
    
  4. 使用 ibmcloud ce jobrun logs 命令显示正在运行的 keyref1 作业实例的日志。 您可以显示作业运行的所有实例的日志,也可以显示作业运行的特定实例的日志。 要显示作业运行的特定实例的日志,请将 --instance 选项与 jobrun logs 命令配合使用。 如果需要,请使用 jobrun get --name keyref1 命令来显示此作业运行的详细信息,包括作业运行的实例。 作业运行使用了 url=myurl 密钥引用。

    ibmcloud ce jobrun logs --instance keyref1-0-0
    

    示例输出

    Getting logs for job run instance 'keyref1-0-0'...
    [...]
    
    url=myurl
    [...]
    
  5. 更新 keyref 作业以使用新密钥覆盖 url=myurl。 使用 --env 选项来更新 url 密钥。 job update 命令上的 --env 选项以 NAME=VALUE 格式设置作业的环境变量。

    ibmcloud ce job update --name keyref --env url=newurl  
    
  6. (可选) 查看 keyref 作业的详细信息。 输出将显示对 mydatabasecm configmap 中的 url 键的键引用。

    ibmcloud ce job get -n keyref
    

    示例输出

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           3m6s
    Created:       2021-02-12T07:18:44-06:00  
    
    Commands:                 
        env  
    Environment Variables:    
        Type     Name  Value  
        Literal  url   newurl  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

使用 CLI 除去完全引用的私钥或配置映射

您可以从作业或应用程序中除去完全引用的私钥或配置映射。

在此场景中,让我们从 demo 作业中除去完全引用的 mydatabasesec 私钥。

  1. 更新 demo 作业以除去对 mydatabasesec 私钥的引用。

    ibmcloud ce job update -n demo --env-from-secret-rm mydatabasesec
    
  2. 查看 demo 作业的详细信息。 输出说明已除去对 mydatabasesec 私钥的引用。

    ibmcloud ce job get -n demo
    

    示例输出

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           19m
    Created:       2021-02-12T07:05:23-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox    
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

使用 CLI 除去密钥引用

您可以从作业或应用程序中除去私钥或配置映射中引用的密钥。

在此场景中,让我们从 keyref 作业中除去 url 键。

即使在作业上使用了 --env-from-configmap 选项来引用 mydatabasecm configmap 中的 url 键,您也可以使用 --env-rm 选项来除去各个键。 您可以将 --env-rm 选项与 job updateapp update 命令配合使用,以除去密钥引用,而无论密钥是私钥或 configmap 中的个别密钥引用,还是直接在作业或应用程序上使用 --env 选项设置密钥。

  1. 更新 keydef 作业以除去对 url 键的引用。

    ibmcloud ce job update --name keyref --env-rm url
    
  2. 查看 keyref 作业的详细信息。 输出说明已除去对 url 键的引用。

    ibmcloud ce job get -n keyref
    

    示例输出

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6m27s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox  
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3