代码之家  ›  专栏  ›  技术社区  ›  Varunkumar Manohar

引用模板的输出

  •  1
  • Varunkumar Manohar  · 技术社区  · 6 年前

    我有一个部署管理器脚本,如下所示: 簇py创建了一个kubernetes集群,当脚本仅为k8集群创建而运行时,它是成功的——因此它意味着集群。py公司 在创建k8群集时没有问题

    cluster.py 还公开输出: 集群的一小部分。py如下:

    outputs.append({
                'name': 'v1endpoint' ,
                'value': type_name + type_suffix })
    
    return {'resources': resources, 'outputs': outputs}
    

    如果我尝试访问内部的公开输出 dmnginxservice 以下资源为 $(ref.dmcluster.v1endpoint) 我收到一个错误,因为找不到资源

    imports:
    - path: cluster.py 
    - path: nodeport.py
    
    resources:
    - name: dmcluster
      type: cluster.py
      properties:
       zone: us-central1-a
    
    - name: dmnginxservice
      type: nodeport.py
      properties:
       cluster: $(ref.dmcluster.v1endpoint)
       image: gcr.io/pr1/nginx:latest
       port: 342
       nodeport: 32123
    
    
    
    ERROR: (gcloud.deployment-manager.deployments.create) Error in Operation [operation-1519960432614-566655da89a70-a2f917ad-69eab05a]: errors:
    - code: CONDITION_NOT_MET
      message: Referenced resource yaml%dmcluster could not be found. At resource
        gke-cluster-dmnginxservice.
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   GalloCedrone    6 年前

    我试图复制一个类似的实现,并且我能够毫无问题地部署它,使用非常相同的sintax作为输出。

    我部署了2个VM和一个新网络。我会把我的代码发布给你,也许你会发现一些关于输出的有趣提示。

    • 第一个VM作为输出传递第二个VM的名称,并使用来自网络的引用
    • 第二个VM使用从第一个VM的输出中填充的属性的名称
    • 由于这些参考文献,该网络是第一个被创建的网络。

    请记住:

    这可能会变得棘手,因为资源的创建顺序很重要;您不能将虚拟机实例添加到不存在的网络,也不能连接不存在的永久磁盘。此外,默认情况下,部署管理器会并行创建所有资源,因此不能保证以正确的顺序创建从属资源。

    我会跳过同样的内容。如果您提供代码,我可以尝试帮助您进行调试,但从错误代码来看,DM似乎不知道第一个元素已经创建,但从提供的信息来看,不清楚原因。

    此外,如果我是你,我会尝试明确设置 dmnginxservice 取决于 dmcluster 利用 metadata . 通过这种方式,您可以再次检查它是否正在等待第一个资源。

    更新

    我已经能够用一个更简单的配置来重现bug,这基本上取决于我引用变量的方式,行为是不同的,并且由于某种原因,属性被扩展为 $(ref.yaml%vm-1.paolo) ,似乎项目和集群引用的组合会带来麻烦。

    #'name': context.properties["debug"],WORKING
    #'name': context.env["project"],WORKING
     'name': context.properties["debug"]+context.env["project"],#NOT WORKING
    

    您可以检查配置 here ,如果您需要的话。

    推荐文章