Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

Some labels keys are dropped from deployment meta to replica set #87

Closed
seryl opened this issue Nov 25, 2017 · 2 comments
Closed

Some labels keys are dropped from deployment meta to replica set #87

seryl opened this issue Nov 25, 2017 · 2 comments

Comments

@seryl
Copy link

seryl commented Nov 25, 2017

It appears that some keys from map labels which are using deployment.mixin.metadata.labels get dropped for it's child replicaset.

Example:

local k = import "ksonnet.beta.2/k.libsonnet";

local container = k.extensions.v1beta1.deployment.mixin.spec.template.spec.containersType;
local containerPort = container.portsType;
local deployment = k.extensions.v1beta1.deployment;

local containerImage = "nginx";
local containerTag = "1.13.7-alpine";

local staticHttp =
  local targetPort = 80;
  container.new(containerImage, containerTag) +
  container.ports(containerPort.newNamed("http", targetPort));

{
  defaultConfig:: {
    limits: {memory: "200Mi", cpu: "100m"},
    labels: {tier: "web", example: "ok", aardvark: "ok"},
  },

  deployment(app, labels, limits)::
    local comboLabels = std.mergePatch(self.defaultConfig.labels, {amazing: app});

    deployment.new("nginx", 3, staticHttp, self.defaultConfig) +
      deployment.mixin.metadata.labels(comboLabels) + {testing: comboLabels},
}.deployment('awesome', {}, {})

Output:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    aardvark: ok
    amazing: awesome
    example: ok
    tier: web
  name: nginx
spec:
  replicas: 3
  template:
    metadata:
      labels:
        labels:
          aardvark: ok
          example: ok
          tier: web
        limits:
          cpu: 100m
          memory: 200Mi
    spec:
      containers:
        - image: 1.13.7-alpine
          name: nginx
          ports:
            - containerPort: 80
              name: http
testing:
  aardvark: ok
  amazing: awesome
  example: ok
  tier: web

Notice: the amazing key is dropped from the replicaset labels.

I'm still digging into why this is happening, but it appears to be with the library.

Both jsonnet and go-jsonnet are producing the same incorrect output.

@seh
Copy link

seh commented Nov 26, 2017

deployment.mixin.metadata.labels changes the labels on the Deployment object itself, not on the labels in the pod template. For those, you need deployment.mixin.spec.template.metadata.labels.

@seryl
Copy link
Author

seryl commented Nov 26, 2017

Oh... I see.

I think I understand now. Thank you!

@seryl seryl closed this as completed Nov 26, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants