hpe-container-platform-community/hpecp-python-library

Implement get /api/v2/k8smanifest

snowch opened this issue · 3 comments

{
  "_links": {
    "self": {
      "href": "/api/v2/k8smanifest"
    }
  },
  "supported_versions": [
    "1.14.10",
    "1.15.11",
    "1.16.9",
    "1.17.5"
  ],
  "bootstrap_image_version": "0.1",
  "version_info": {
    "1.14.10": {
      "min_upgrade_version": "1.13.0",
      "relnote_url": "https://v1-14.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor"
      ]
    },
    "1.15.11": {
      "min_upgrade_version": "1.14.0",
      "relnote_url": "https://v1-15.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    },
    "1.16.9": {
      "min_upgrade_version": "1.15.0",
      "relnote_url": "https://v1-16.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    },
    "1.17.5": {
      "min_upgrade_version": "1.16.0",
      "relnote_url": "https://v1-17.docs.kubernetes.io/docs/setup/release/notes/",
      "addons": [
        "hpecp-agent",
        "kubedirector",
        "kube-state-metrics",
        "kubernetes-dashboard",
        "metrics-server",
        "nvidia-plugin",
        "hpecp-monitoring",
        "hpecp-serviceaccounts",
        "nimble",
        "harbor",
        "istio",
        "picasso"
      ]
    }
  },
  "import_addons": [
    "hpecp-agent",
    "kubedirector",
    "kube-state-metrics",
    "hpecp-monitoring",
    "istio"
  ],
  "addon_info": {
    "harbor": {
      "required": false,
      "version": "0.3",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-harbor",
      "label": {
        "name": "Harbor container image registry",
        "description": "Harbor secures images with role-based access control, scans images for vulnerabilities, and signs images as trusted."
      }
    },
    "hpecp-agent": {
      "required": true,
      "version": "0.6",
      "system": true,
      "order": 10,
      "deployment": "hpecp-bootstrap-hpecp-agent",
      "label": {
        "name": "hpecp-bootstrap-hpecp-agent",
        "description": ""
      }
    },
    "hpecp-monitoring": {
      "required": true,
      "version": "6.6.4-1.0",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-hpecp-monitoring",
      "label": {
        "name": "hpecp-bootstrap-hpecp-monitoring",
        "description": ""
      }
    },
    "hpecp-serviceaccounts": {
      "required": true,
      "version": "0.2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-hpecp-serviceaccounts",
      "label": {
        "name": "hpecp-bootstrap-hpecp-serviceaccounts",
        "description": ""
      }
    },
    "istio": {
      "required": false,
      "version": "1.6.1",
      "system": false,
      "order": 30,
      "deployment": "hpecp-bootstrap-istio",
      "label": {
        "name": "Istio",
        "description": "Istio Service Mesh addon for Kubernetes."
      }
    },
    "kube-state-metrics": {
      "required": true,
      "version": "2.8.8",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-kube-state-metrics",
      "label": {
        "name": "hpecp-bootstrap-kube-state-metrics",
        "description": ""
      }
    },
    "kubedirector": {
      "required": true,
      "version": "0.9",
      "system": true,
      "order": 20,
      "deployment": "hpecp-bootstrap-kubedirector",
      "label": {
        "name": "hpecp-bootstrap-kubedirector",
        "description": ""
      }
    },
    "kubernetes-dashboard": {
      "required": true,
      "version": "v2.0.0-rc2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-kubernetes-dashboard",
      "label": {
        "name": "hpecp-bootstrap-kubernetes-dashboard",
        "description": ""
      }
    },
    "metrics-server": {
      "required": true,
      "version": "v0.3.6-1",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-metrics-server",
      "label": {
        "name": "hpecp-bootstrap-metrics-server",
        "description": ""
      }
    },
    "nimble": {
      "required": false,
      "version": "0.2",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-nimble-csi",
      "label": {
        "name": "HPE Nimble Storage",
        "description": "HPE Nimble persistent storage using HPE CSI driver for Kubernetes."
      }
    },
    "nvidia-plugin": {
      "required": true,
      "version": "1.0.0-beta2",
      "system": true,
      "order": 40,
      "deployment": "hpecp-bootstrap-nvidia-plugin",
      "label": {
        "name": "hpecp-bootstrap-nvidia-plugin",
        "description": ""
      }
    },
    "picasso": {
      "required": false,
      "version": "0.1",
      "system": false,
      "order": 40,
      "deployment": "hpecp-bootstrap-picasso",
      "label": {
        "name": "Enable packaged apps",
        "description": "Enable custom resources to create Spark and KubeFlow applications"
      }
    }
  }
}
$ hpecp k8scluster get-installed-addons --id /api/v2/k8scluster/1
["picasso"]

$ hpecp k8scluster get-available-addons --id /api/v2/k8scluster/1
['hpecp-agent', 'kubedirector', 'kube-state-metrics', 'kubernetes-dashboard', 'metrics-server', 'nvidia-plugin', 'hpecp-monitoring', 'hpecp-serviceaccounts', 'nimble', 'harbor', 'istio', 'picasso']

$ hpecp httpclient post /api/v2/k8scluster/1/change_task --json-file <(echo '{"change_spec": {"addons": ["picasso", "harbor"]}, "operation": "reconfigure", "reason": ""}')

$ hpecp k8scluster wait-for-status --id  /api/v2/k8scluster/1 --status [ready] --timeout-secs 600

$ hpecp k8scluster get-installed-addons --id /api/v2/k8scluster/1
["picasso", "harbor"]

The addons list is the desired end state. I.e. if a cluster has picasso and you want to add harbor while keeping picasso, you will need to submit: ["picasso", "harbor"]

done