资源编排服务 RFS-CCE.Service:blueprint样例

时间:2024-04-18 10:02:52

blueprint样例

tosca_definitions_version: huaweicloud_tosca_version_1_0
inputs:
  labels:
    description: 应用实例标签,需和service中的selector参数下设置的标签一致
    label: 工作负载
    default: test
  deploymentName:
    description: 工作负载名称 
    label: 工作负载
    default: deployment-test
  image:
    description: 应用镜像地址
    label: 工作负载
  ingressName:
    description: ingress名称
    label: 入口信息
    default: ingress-test
  host:
    description: ingress host域名信息
    label: 入口信息
    default: test.com
  secretName:
    description: 密钥名称
    label: 入口信息
    type: HuaweiCloud.ECS.KeyPair.Name
  serviceName:
    description: 服务名称
    label: 网络服务
    default: service-test
  servicePort:
    description: 服务端口
    label: 网络服务
    default: 8888
    type: integer
  path:
    description: 应用路由
    label: 网络服务
    default: /test
  protocol:
    description: 服务协议,只能填写TCP或者UDP
    label: 网络服务
    default: TCP
  targetPort:
    description: 应用本身开放服务端口
    label: 网络服务
    default: 8888
    type: integer
node_templates:
  my-deployment:
    properties:
      k8sManifest:
        apiVersion: apps/v1
        kind: Deployment
        metadata:
          labels:
            app:
              get_input: labels
          name:
            get_input: deploymentName
        spec:
          replicas: 1
          selector:
            matchLabels:
              app:
                get_input: labels
          strategy:
            rollingUpdate:
              maxSurge: 0
              maxUnavailable: 1
            type: RollingUpdate
          template:
            metadata:
              labels:
                app:
                  get_input: labels
            spec:
              containers:
                - image:
                    get_input: image
                  imagePullPolicy: IfNotPresent
                  name: nginx
    requirements: []
    type: HuaweiCloud.CCE.Deployment
  my-ingress:
    properties:
      k8sManifest:
        apiVersion: extensions/v1beta1
        kind: Ingress
        metadata:
          annotations:
            ingress.beta.kubernetes.io/role: data
            ingress.kubernetes.io/secure-backends: 'false'
          labels:
            isExternal: 'true'
            zone: data
          name:
            get_input: ingressName
        spec:
          rules:
            - host:
                get_input: host
              http:
                paths:
                  - backend:
                      serviceName:
                        get_input: serviceName
                      servicePort:
                        get_input: servicePort
                    path:
                      get_input: path
          tls:
            - secretName:
                get_input: secretName
              hosts:
                - get_input: host
    requirements:
      - dependency:
          node: my-service
    type: HuaweiCloud.CCE.Ingress
  my-service:
    properties:
      k8sManifest:
        apiVersion: v1
        kind: Service
        metadata:
          name:
            get_input: serviceName
        spec:
          ports:
            - name:
                get_input: serviceName
              port:
                get_input: servicePort
              protocol:
                get_input: protocol
              targetPort:
                get_input: targetPort
          selector:
            app:
              get_input: labels
          sessionAffinity: ClientIP
          type: ClusterIP
    requirements:
      - dependency:
          node: my-deployment
    type: HuaweiCloud.CCE.Service
support.huaweicloud.com/tr-aos/cce-service.html