CPD:使用restAPI和cpd-cli命令创建DMC实例

环境

  • Red Hat Enterprise Linux release 8.6 (Ootpa)
  • OCP 4.12.22
  • IBM CP4D 4.8.0
  • Data Management Console 3.1.12 (DMC for CPD 4.8.0)

注:使用了fyre VM。

创建DMC实例

准备

首先export环境变量:

. ./stg_env.sh

cpd-cli 放到PATH里。编辑 ~/.bashrc 文件,添加如下内容:

export PATH=~/cpd-cli-linux-EE-13.1.0-74:$PATH

然后:

. ~/.bashrc

确认已添加:

which cpd-cli
/root/cpd-cli-linux-EE-13.1.0-74/cpd-cli

log in OCP和CPD:

oc login https://$(hostname):6443 -u kubeadmin -p $(cat /root/auth/kubeadmin-password)cpd-cli manage login-to-ocp -u kubeadmin -p $(cat /root/auth/kubeadmin-password) --server=https://$(hostname):6443

方法1:从UI创建

略。

方法2:使用restAPI创建

设置环境变量:

export INSTANCE_NAME=data-management-consoleexport INSTANCE_DESCRIPTION="IBM Db2 Data Management Console"export STORAGE_SIZE=10export INSTANCE_SIZE=smallexport PROJECT_CPD_INST_OPERANDS=cpd-instanceexport VERSION=4.8.0export STG_CLASS_FILE=nfs-clientexport CPD_ROUTE=$(oc get route cpd -n ${PROJECT_CPD_INST_OPERANDS} -o jsonpath={".spec.host"})

创建文件 data-management-console-instance.json

cat << EOF > ./data-management-console-instance.json
{"addon_type":"dmc","display_name":"${INSTANCE_NAME}","description":"${INSTANCE_DESCRIPTION}","namespace":"${PROJECT_CPD_INST_OPERANDS}","addon_version": "${VERSION}","parameters":{"storageClass":"${STG_CLASS_FILE}","storageSize":"${STORAGE_SIZE}Gi"},"create_arguments":{"metadata":{"storageClass":"${STG_CLASS_FILE}","storageSize":"${STORAGE_SIZE}Gi","scaleConfig":"${INSTANCE_SIZE}"}},"pre_existing_owner":false
}
EOF

创建完成后,检查一下文件内容:

{"addon_type":"dmc","display_name":"data-management-console","description":"IBM Db2 Data Management Console","namespace":"cpd-instance","addon_version": "4.8.0","parameters":{"storageClass":"nfs-client","storageSize":"10Gi"},"create_arguments":{"metadata":{"storageClass":"nfs-client","storageSize":"10Gi","scaleConfig":"small"}},"pre_existing_owner":false
}

设置环境变量:

export PAYLOAD_FILE=data-management-console-instance.json

接下来要用到Zen API key。

先要获取API key。在UI右上角,点击“Profile and settings”:

在这里插入图片描述

点击“API key -> Generate new key”:

在这里插入图片描述

点击“Generate”:

在这里插入图片描述

点击“Copy”,把API key保存到某个地方(如果丢失,无法找回,只能重新生成一个新key)。

例如,获取的API key为: KIXAyDVUZvNhjca4oR3eApYk10kJdzsmKwZ33bG1

现在,要通过API key生成ZenApiKey,方法为:

echo "<username>:<api_key>" | base64

例如:

echo "cpadmin:KIXAyDVUZvNhjca4oR3eApYk10kJdzsmKwZ33bG1" | base64

生成的ZenApiKey为: Y3BhZG1pbjpLSVhBeURWVVp2TmhqY2E0b1IzZUFwWWsxMGtKZHpzbUt3WjMzYkcxCg==

设置环境变量:

export API_KEY=KIXAyDVUZvNhjca4oR3eApYk10kJdzsmKwZ33bG1export ZenApiKey=Y3BhZG1pbjpLSVhBeURWVVp2TmhqY2E0b1IzZUFwWWsxMGtKZHpzbUt3WjMzYkcxCg==

接下来,就可以创建DMC实例了:

curl -k --request POST \
--url "https://${CPD_ROUTE}/zen-data/v3/service_instances" \
--header "Authorization: ZenApiKey ${ZenApiKey}" \
--header 'Content-Type: application/json' \
--data @${PAYLOAD_FILE}

注意使用的是ZenApiKey。

返回结果是新创建实例的ID,例如:

{"id":"1699866419910616"}

等DMC实例创建好。

检查实例:

curl -k --request GET \
--url "https://${CPD_ROUTE}/zen-data/v3/service_instances/1699866419910616" \
--header "Authorization: ZenApiKey ${ZenApiKey}" \
--header 'Content-Type: application/json' | jq .

例如,结果为:

{"service_instance": {"addon_type": "dmc","addon_version": "4.8.0","connection_info": {"external_url": "$HOST/v1/external"},"created_at": "2023-11-13T04:55:40.271977Z","description": "Data Management Console","display_name": "data-management-console","id": "1699851327823720","instance_identifiers": null,"metadata": {"storageClass": "nfs-client","storageSize": "10Gi"},"misc_data": {},"namespace": "cpd-instance","owner_uid": "1000331001","owner_username": "cpadmin","parameters": {},"provision_status": "PROVISIONED","resources": {"cpu": "4.20","memory": "10.43 Gi"},"roles": ["Admin"],"updated_at": "2023-11-13T06:50:03.486676Z","zen_service_instance_info": {"docker_registry_prefix": "icr.io/cpopen/cpfs"}}
}

方法3:使用cpd-cli命令创建

同样需要设置环境变量,以及创建文件 data-management-console-instance.json ,参见上面的描述。

不同之处在于,需要设置一个profile参数。

设置环境变量:

export CPD_ADMIN_USER=cpadminexport CPD_PROFILE_NAME=cpd-admin-profile# 也可以用前面的 ${CPD_ROUTE} 变量
export CPD_PROFILE_URL=https://cpd-cpd-instance.apps.o1-370456.cp.fyre.ibm.comexport LOCAL_USER=cpadmin# 注意这里是API key,不要跟前面的ZenApiKey弄混了
cpd-cli config users set ${LOCAL_USER} --username ${CPD_ADMIN_USER} --apikey ${API_KEY}cpd-cli config profiles set ${CPD_PROFILE_NAME} \
--user ${LOCAL_USER} \
--url ${CPD_PROFILE_URL}

创建好profile之后,可以list一下实例:

cpd-cli service-instance --profile ${CPD_PROFILE_NAME} list

结果如下:

 Namespace           Service type        Version             ID                  Name                      Provision status    Upgrade version option---------           ------------        -------             --                  ----                      ----------------    ----------------------cpd-instance        dmc                 4.8.0               1699866419910616    data-management-console   PROVISIONED         []

为了测试创建,先把DMC实例删掉。

然后再创建DMC实例:

cpd-cli service-instance create \
--profile=${CPD_PROFILE_NAME} \
--from-source=${PAYLOAD_FILE}

运行成功,没有返回结果。

等DMC实例创建好。

检查实例:

cpd-cli service-instance status ${INSTANCE_NAME} \
--profile=${CPD_PROFILE_NAME} \
--output=json

结果如下:

{"service_instance": {"display_name": "data-management-console","id": "1699869169988950","service_type": "dmc","service_version": "4.8.0","namespace": "cpd-instance","provision_status": "PROVISIONED","service_status": "RUNNING"}
}

参考

  • https://ibmdocs-test.dcs.ibm.com/docs/en/SSQNUZ_4.8_test?topic=pis-creating-service-instance-6
  • https://ibmdocs-test.dcs.ibm.com/docs/en/SSQNUZ_4.8_test?topic=sirio-service-instance-creation-cpd-cli-service-instance-create#payload__dmc__title__1
  • https://ibmdocs-test.dcs.ibm.com/docs/en/SSQNUZ_4.8_test?topic=only-service-instance-creation-rest-api
  • https://www.ibm.com/docs/en/cloud-paks/cp-data/4.7.x?topic=interface-creating-cpd-cli-profile

注:CPD 4.8还没有release,这是draft doc,如果是正式doc,应该是 https://www.ibm.com/docs/en/cloud-paks/cp-data/4.8.x?topic=xxxxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178459.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blackmagic Design DaVinci Resolve Studio18(达芬奇调色剪辑)mac/win中文版

在影视制作领域&#xff0c;调色和剪辑是至关重要的环节&#xff0c;它们直接决定了作品的观感和质量。而Blackmagic Design DaVinci Resolve Studio18&#xff08;达芬奇调色剪辑&#xff09;作为业界领先的专业调色剪辑软件&#xff0c;以其出色的性能和强大的功能&#xff0…

一文图解爬虫_姊妹篇(spider)

—引导语 爬虫&#xff0c;没有一个时代比当前更重视它。一个好的爬虫似乎可以洞穿整个互联网&#xff0c;“来装满自己的胃”。 接上一篇&#xff1a;一文图解爬虫&#xff08;spider&#xff09; 博主已初步对爬虫的“五脏六腑”进行了解剖。虽然俗称“爬虫”&#xff0c;但窃…

stm32超声波测距不准的解决方法(STM32 delay_us()产生1us)及stm32智能小车超声波测距代码(C语言版本)

首先要说明一下原理&#xff1a;使用stm32无法准确产生1us的时间&#xff0c;但是超声波测距一定要依赖时间&#xff0c;时间不准&#xff0c;距离一定不准&#xff0c;这是要肯定的&#xff0c;但是在不准确的情况下&#xff0c;要测量一个比较准确的时间&#xff0c;那么只能…

2023.11.16 hivesql之条件函数,case when then

目录 一.Conditional Functions条件函数 二.空值相关函数 三&#xff1a;使用注意事项 3.1 then后面不能接子查询 3.2 then后面只能是结果值 3.3 then后面能不能接两列 四.用于建表新增字段使用场景 一.Conditional Functions条件函数 -- 演示条件函数 -- if(条件判断,t…

如何检查 Docker 和 Kubernetes 是否可以访问外部网络,特别是用于拉取镜像的仓库?

要检查 Docker 和 Kubernetes 是否可以访问外部网络&#xff0c;尤其是用于拉取容器镜像的仓库&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 检查节点的网络连接 首先&#xff0c;您需要确保 Kubernetes 节点能够访问外部网络。这可以通过在节点上执行 ping 命令来测试…

LeetCode(9)跳跃游戏【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 55. 跳跃游戏 1.题目 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回…

HTML5学习系列之实用性标记

HTML5学习系列之实用性标记 前言实用性标记高亮显示进度刻度时间联系信息显示方向换行断点标注 总结 前言 学习记录 实用性标记 高亮显示 mark元素可以进行高亮显示。 <p><mark>我感冒了</mark></p>进度 progress指示某项任务的完成进度。 <p…

Linux安装jdk1.8教程(服务器可以访问网络)

文章目录 前言创建安装目录查看是否安装过下载解压配置环境变量查看是否安装成功 前言 本教程介绍了一种快捷的jdk1.8安装方法。 创建安装目录 mkdir -p /opt/software // 这是我自己的安装目录&#xff0c;根据自己的习惯确定查看是否安装过 rpm -qa | grep -i jdk需要注意…

java springboot application中设置正确的数字密码连不上数据库问题解决

说一个真实存在的问题 就是 有时候 我们在配置文件中设置了正确的数据库密码 但是 就是连不上 比如 我在application.yml配置文件中配置了一个数据库密码 这里 我们写的是 0127 然后 我们在程序中 读取并打印出来 看看系统拿到的到底是个什么&#xff1f; 但怪了 系统给我们…

无需代码RSS订阅有内容新增自动在滴答创建任务

数环通让您可以通过不到几分钟的时间即可实现RSS订阅与滴答清单的对接与集成&#xff0c;从而高效实现工作流程自动化&#xff0c;降本增效&#xff01; 1.产品介绍 RSS订阅是数环通的内置应用&#xff0c;很多用户通过RSS订阅来收集自己在各大平台上看的内容&#xff0c;当R…

【数据结构—— 栈的实现(数组栈)】

数据结构—— 栈的实现 一.栈1.1栈的概念及结构 二.栈的实现2.1头文件的实现——&#xff08;Strck.h&#xff09;2.2 源文件的实现——&#xff08;Strck.c&#xff09;2.3 源文件的实现——&#xff08;test.c&#xff09; 三.栈的实际数据测试展示3.1正常的后进先出方式3.2 …

【图像分类】【深度学习】【Pytorch版本】 GoogLeNet(InceptionV3)模型算法详解

【图像分类】【深度学习】【Pytorch版本】 GoogLeNet(InceptionV3)模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】 GoogLeNet(InceptionV3)模型算法详解前言GoogLeNet(InceptionV3)讲解Factorized Convolutions卷积分解InceptionV3结构ⅠInceptionV3结构ⅡInc…