Skip to content
Snippets Groups Projects
  1. Mar 25, 2018
  2. Mar 24, 2018
  3. Mar 21, 2018
  4. Mar 17, 2018
  5. Mar 16, 2018
  6. Mar 15, 2018
  7. Mar 13, 2018
  8. Mar 07, 2018
  9. Mar 05, 2018
  10. Feb 26, 2018
    • Jessica Yuen's avatar
      Set param boolean types as strings · daf10a0a
      Jessica Yuen authored
      
      Fixes #311
      
      There currently exists a discrepency between the param types expected
      from:
      1. The parts library and in generate / prototype use
      2. ks param set
      
      ks param set will set boolean types as jsonnet boolean types, however,
      prototypes will set boolean types as strings (i.e. in quotes). This
      change will make it such that ks param sets boolean types as strings.
      The reason we're not setting booleans in both model is because that will
      require a better dependency story around ksonnet/parts first.
      
      Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
      daf10a0a
  11. Feb 23, 2018
    • Jessica Yuen's avatar
      App spec to take a single destination · 936e31ab
      Jessica Yuen authored
      
      Currently the app.yaml spec takes a list of destinations. The change
      exists to anticipate support for an environment supporting multiple
      clusters or "destinations". The problem is, while the use case makes
      sense for `apply`, and `delete`, it becomes ambiguous which cluster is
      being referred to during commands such as `diff`. We've considered
      specifying a cluster during a `diff`, however, ks currently doesn't have
      a notion of a cluster identity. This change is to update the app.yaml to
      take a single destination to more accurately represent the state of
      things.
      
      Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
      936e31ab
  12. Feb 21, 2018
  13. Feb 17, 2018
  14. Feb 08, 2018
  15. Feb 02, 2018
    • Jessica Yuen's avatar
      Migrate environment spec.json to the app.yaml model · 19b3b928
      Jessica Yuen authored
      
      Currently spec.json contains detail about an environment's namespace and
      server. Following the proposal at
      design/proposals/modular-components.md, this change will consolidate
      environment specifications in the common ksonnet app.yaml file.
      
      An environment specification for the environment "dev", may look as
      follows:
      
      environments:
        dev:
          destinations:
          - namespace: foo
            server: example.com
          k8sVersion: "1.8.1"
          path: dev
          targets:
          - db
      
      Note: This change currently doesn't support
      
      (1) population of the k8sVersion field. This will occur as we migrate
      the environment .metadata folder.
      (2) deployment to more than one destination. This will occur once ks
      supports multi-cluster deployment.
      (3) setting of details other than the env name in `ks env set`. Prior
      to this change, users are able to namespace and server URI, however it
      becomes ambiguous which namespace is being set for an environment where
      there can be multiple destinations. We will encourage configuration in
      app.yaml itself.
      (4) targets. This will come in a later change.
      
      Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
      19b3b928
  16. Jan 25, 2018
  17. Jan 22, 2018
    • Jessica Yuen's avatar
      Add remove component functionality · 8f26d9a4
      Jessica Yuen authored
      
      Introduce `ks component rm <component>`. This functionality will:
      
      1. Delete the component file from components/. This is determined by the
      component file name. If there exists two files with the same name but
      different file  extensions, we will error out.
      
      2. Remove component references. This currently implies removing all
      component referenes in the component/params.libsonnet file and the
      environment-specific params.libsonnet files.
      
      Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
      8f26d9a4
  18. Jan 08, 2018
  19. Jan 05, 2018
  20. Dec 15, 2017
    • Jessica Yuen's avatar
      Implement command `ks registry add` · 4e0b163e
      Jessica Yuen authored
      
      Currently users are unable to add their own registries through the CLI.
      This limits them to a small subset of prototypes found in the default
      incubator registry.
      
      This commit will add the command `ks registry add`, that allows users to
      add registries supporting the `github` protocol.
      
      It will be of the form `ks registry add <registry-name> <registry-uri>
      [--version]`. If a version is not specified, `latest` will be used.
      
      Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
      4e0b163e
  21. Nov 22, 2017
    • Jessica Yuen's avatar
      Improve logging for init · 97631513
      Jessica Yuen authored
      - Add message:  Creating a new app 'foo' at path '/path/to/foo'
      - On success, add message:  ksonnet app successfully created! Next, try
        creating a component with `ks generate`
      - On failure, provide suggestions for the user.
      - Make note that the context is retrieved from the kubeconfig file at
        the environment variable $KUBECONFIG
      97631513
  22. Nov 13, 2017
    • Jessica Yuen's avatar
      Use background colors for param diff · 2fcbf68b
      Jessica Yuen authored
      Foreground colors were causing conflicts with user's terminal colors.
      i.e. Black text would show as invisible for users with a black terminal
      background.
      2fcbf68b
  23. Nov 10, 2017
    • Alex Clemmer's avatar
      :nail_care: Add row-padding string pretty printer · 9c2d0a2d
      Alex Clemmer authored
      Historically, every time we've needed to write out something tabular,
      we've hand-rolled an ad hoc padded row writer. Yes, in each case. Such
      is #startuplife.
      
      The third time we did this we wrote this with bugs, and so now we are
      rewriting it in a general, tested function, and transitioning all places
      where we call this to use this function.
      9c2d0a2d
  24. Nov 06, 2017
    • Alex Clemmer's avatar
      Emit `app.yaml` after init · 4dd0dd7a
      Alex Clemmer authored
      When the user calls `ks init <whatever>`, we need to emit an `app.yaml`
      for the new project. This commit will introduce such behavior.
      4dd0dd7a
  25. Nov 04, 2017
    • Jessica Yuen's avatar
      Introduce command: `ks param diff <env1> <env2> [--component]` · 6a6704fc
      Jessica Yuen authored
      Pretty prints differences between the component parameters of two
      environments.
      
      A component flag is accepted to diff against a single component. By
      default, the diff is performed against all components.
      6a6704fc
    • Jessica Yuen's avatar
      Introduce command: 'ks param list [component] [--env=<env>]' · eabd30c5
      Jessica Yuen authored
      Pretty prints component or environment parameters.
      
      This command will display all parameters for the component specified. If
      a component is not specified, parameters for all components will be
      listed.
      
      Furthermore, parameters can be listed on a per-environment basis.
      
      Examples:
      
      List all component parameters
        ks param list
      
      List all parameters for the component "guestbook"
        ks param list guestbook
      
      List all parameters for the environment "dev"
        ks param list --env=dev
      
      List all parameters for the component "guestbook" in the environment
      "dev"
        ks param list guestbook --env=dev`,
      eabd30c5
    • Jessica Yuen's avatar
      Introduce commands: 'ks param' and 'ks param set' · 8fc6c76c
      Jessica Yuen authored
      Parameters are the customizable fields defining ksonnet components. For
      example, replica count, component name, or deployment image.
      
      Parameters are also able to be defined separately across environments.
      Meaning, this supports features to allow a "development" environment to
      only run a single replication instance for it's components, whereas
      allowing a "production" environment to run more replication instances to
      meet heavier production load demands.
      
      'ks param set' is defined as follows:
        'ks param set <component-name> <param-key> <param-value>'
      
      Examples:
      
      Updates the replica count of the 'guestbook' component to 4.
        'ks param set guestbook replicas 4'
      
      Updates the replica count of the 'guestbook' component to 2 for the
      environment 'dev'
        'ks param set guestbook replicas 2 --env=dev'
      8fc6c76c
  26. Oct 26, 2017
    • Jessica Yuen's avatar
      Rename environment uri references to server · 3c9e07e9
      Jessica Yuen authored
      'server' is consistent with what is used by clientgo. 'uri' only
      introduces new language to ksonnet with the same meaning.
      3c9e07e9
    • Jessica Yuen's avatar
      Support `diff` between two environments · 2687c6d8
      Jessica Yuen authored
      This change enables the user to diff between two environments that are
      either local or remote.
      
      i.e.,
      
      `kubecfg diff local:dev local:prod` will diff between the expanded
      templates for each environment on disk.
      
      `kubecfg diff remote:dev remote:prod` will diff between two remote
      environment clusters. It does this by first expanding the component
      templates of each environment. Then, the live objects are fetched from
      each of the clusters and the diff is performed against the live objects.
      
      `kubecfg diff local:dev remote:prod` is also an option. This will diff
      between the expanded templates for 'dev' on disk and the live objects
      on 'prod's server.
      2687c6d8
  27. Oct 17, 2017
    • Jessica Yuen's avatar
    • Jessica Yuen's avatar
      Introduce namespace to environments · 38f35db4
      Jessica Yuen authored
      Environments currently have the concept of a server URI, but it is
      ambiguous which cluster namespace to use.
      
      This commit will introduce the concept of namespaces to the env
      commands.
      
      For example,
      `kubecfg env add staging http://mock-staging-uri \
       --namespace=staging-namespace`
      `kubecfg env set staging --namespace=staging-namespace`
      
      The default environment will use the namespace of the default context.
      
      This commit will also update commands that take the <env> arg such as
      `apply` to make use of the env namespace, if specified.
      38f35db4
  28. Sep 21, 2017