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-console

export INSTANCE_DESCRIPTION="IBM Db2 Data Management Console"

export STORAGE_SIZE=10

export INSTANCE_SIZE=small

export PROJECT_CPD_INST_OPERANDS=cpd-instance

export VERSION=4.8.0

export STG_CLASS_FILE=nfs-client

export 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=KIXAyDVUZvNhjca4oR3eApYk10kJdzsmKwZ33bG1

export 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=cpadmin

export CPD_PROFILE_NAME=cpd-admin-profile

# 也可以用前面的 ${CPD_ROUTE} 变量
export CPD_PROFILE_URL=https://cpd-cpd-instance.apps.o1-370456.cp.fyre.ibm.com

export 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从GPT定制到Turbo升级再到Assistants API,未来AI世界,你准备好了吗?

引言 在OpenAI DevDay发布会上&#xff0c;OpenAI再次震撼整个人工智能行业&#xff0c;为AI领域带来了重大的更新。CEO Sam Altman宣布推出了定制版本的ChatGPT&#xff0c;这意味着用户现在可以根据自己的需求打造个性化的GPT&#xff0c;并分享至GPT Store。这一消息对于受A…

iText v1.8.1(OCR截图文字识别工具)

iText for mac是一款OCR&#xff08;光学字符识别&#xff09;工具&#xff0c;可以从图片中识别文字&#xff0c;适用于从扫描版的PDF等任意图片中提取文字。 使用iText&#xff0c;您可以方便快捷地从图片中摘抄和批注文字&#xff0c;满足您的各种需求。其自带截图功能&…

基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码

基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于果蝇优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

upload-labs关卡5(点和空格绕过)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第五关通关思路1.看源代码2.点和空格绕过3、验证上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的平台&#xff0c;不能随意去尚未授权的网站做渗透测试&#xff0…

Unity中雾效的实现方法二

文章目录 前言一、声明雾效所需要的内置变体二、在 v2f 中声明顶点传入片段中的雾效插值器三、 在顶点着色器中计算雾效采样四、在片元着色器中进行雾效颜色混合在这里插入图片描述 五、最终效果 前言 Unity中雾效的实现方法二&#xff0c;使用 Unity 自带的方法实现&#xff…

JVM及其垃圾回收机制(GC)

目录 一.JVM内存区域划分 二.JVM类加载机制 类加载过程 类加载的时机 双亲委派模型 三.JVM垃圾回收机制&#xff08;GC) GC工作过程 1.找到垃圾/判断垃圾 &#xff08;1&#xff09;引用计数【python/PHP】 &#xff08;2&#xff09;可达性分析【Java】 2.对象释放…

shell 语法介绍

大家好&#xff0c;我是蓝胖子&#xff0c;在日常开发中或多或少都会接触到shell脚本&#xff0c;可以说会shell脚本是一位后端开发的基本功&#xff0c;今天我将会花上一篇文章总结下常见的shell的语法&#xff0c;学完本篇&#xff0c;相信简单的shell脚本就能够看懂了&#…

uniapp的实战总结大全

&#x1f642;博主&#xff1a;冰海恋雨 &#x1f642;文章核心&#xff1a;uniapp部分总结 目录 ​编辑 目录 前言&#xff1a; 解决方案 1. 跨平台开发 2. Vue.js生态 3. 组件库 4. 自定义组件 5. Native能力 6. 插件生态 7. 性能优化 写法 1. 模板&#xf…

基于范数求解缩放因子方法的MIMO系统预编码技术matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. MIMO系统模型 4.2. 基于范数求解缩放因子的预编码技术 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 。。。。。。。。。。。。。。。…

Hbuilder介绍,uniapp框架

Hbuilder对程序前端页面进行开发&#xff08;包括android&#xff0c;ios&#xff0c;小程序&#xff0c;web等等&#xff09;,其实也就是相当于把android开发进行前后端分离了。方便分工协作。提高开发效率。 用前端框架开发可以实现一次编码&#xff0c;多平台运行。 &…

人工智能极简史:一文读懂ChatGPT的前世今生

2022年11月30日&#xff0c;OpenAI推出的一款人工智能技术驱动的自然语言处理工具——ChatGPT&#xff0c;迅速在社交媒体上走红&#xff0c;短短5天&#xff0c;注册用户数就超过100万。 2023年1月末&#xff0c;ChatGPT的月活用户已突破1亿&#xff0c;一度成为史上增长最快的…

网站定制开发的流程|软件app小程序开发定制

网站定制开发的流程|软件app小程序开发定制 网站定制开发是一个为个体或企业创建定制化网站的过程。它涉及到规划、设计、开发和测试等一系列步骤&#xff0c;以满足客户的需求和目标。下面是网站定制开发的基本流程。 1. 需求分析&#xff1a;首先&#xff0c;与客户沟通并了解…

Netty Review - 快速上手篇

文章目录 基础概念官网Whats NettyWhy NettyAbout Netty Author & LeaderWhat can Netty doNetty开发流程Flow HL View客户端开发Handler客户端启动类 服务端开发Handler服务器端启动类 运行示例 基础概念 BIO、NIO和AIO这三个概念分别对应三种通讯模型&#xff1a;阻塞、…

Docker 中的端口

Docker 中的端口 0.0.0.0:8080->80/tcp &#xff0c;主机&#xff08;即运行 Docker 的机器&#xff09;监听8080端口&#xff0c;如果有请求转发到容器的 80 端口上去。 详细解释一下&#xff1a; 0.0.0.0:8080->80/tcp &#xff1a;这是一个端口映射规则。 0.0.0.0:80…

【C语言 | 指针】C指针详解(经典,非常详细)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Django下的Race Condition漏洞

目录 环境搭建 无锁无事务的竞争攻击复现 无锁有事务的竞争攻击复现 悲观锁进行防御 乐观锁进行防御 环境搭建 首先我们安装源码包&#xff1a;GitHub - phith0n/race-condition-playground: Playground for Race Condition attack 然后将源码包上传到Ubuntu 为了方便使…

软板当然可以弯折啊,只是容易弯出问题而已

高速先生成员&#xff1a;黄刚 每次在介绍具体案例之前&#xff0c;都还是先铺垫下基础知识吧。今天讲的是一个软板的案例&#xff0c;我们循例先介绍下软板的概念。相信大多数的硬件工程师&#xff0c;PCB设计工程师或者测试工程师都见过&#xff0c;就是像下面的这些了。 它作…

openGauss学习笔记-118 openGauss 数据库管理-设置数据库审计-维护审计日志

文章目录 openGauss学习笔记-118 openGauss 数据库管理-设置数据库审计-维护审计日志118.1 前提条件118.2 背景信息118.3 操作步骤 openGauss学习笔记-118 openGauss 数据库管理-设置数据库审计-维护审计日志 118.1 前提条件 用户必须拥有审计权限。 118.2 背景信息 与审计日…

手写线性表C++ vector

目录 一、vector基本概念 1.1、构造函数 1.2、析构函数 1.3、插入元素 1.4、删除元素 1.5、重载运算符 二、完整代码 一、vector基本概念 C中的vector是一种动态数组&#xff0c;它可以根据需要自动调整大小。vector是C标准模板库&#xff08;STL&#xff09;中的一个容…

海康威视(iVMS)综合安防系统任意文件上传漏洞复现 [附POC]

文章目录 海康威视&#xff08;iVMS&#xff09;综合安防系统任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 海康威视&#xff08;iVMS&#xff09;综合安防系统任意文件上传漏洞复…