Skip to content

Releases: ninech/nctl

v1.18.2

Choose a tag to compare

@github-actions github-actions released this 30 Jul 09:06
b1a1db3

Changelog

This release contains various fixes for nctl.

What's Changed

  • fix: return non-zero exit code if project is not found by @rnestler in #417
  • detect no-op updates and return error instead of silent success by @SaadAssaf in #418
  • update brew instructions by @thirdeyenick in #419
  • fix: pass existing git auth secret to validator before constructing it by @thirdeyenick in #420
  • build(deps): bump crate-ci/typos from 1.47.0 to 1.48.0 by @dependabot[bot] in #421
  • build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #422
  • build(deps): bump github.com/int128/kubelogin from 1.36.1 to 1.36.2 by @dependabot[bot] in #424
  • build(deps): bump k8s.io/client-go from 0.36.1 to 0.36.2 by @dependabot[bot] in #426
  • fix: reject -f flag combined with a resource kind on create by @SaadAssaf in #430

Full Changelog: v1.18.1...v1.18.2

v1.18.1

Choose a tag to compare

@thde thde released this 16 Jun 15:07
1988fbd

Changelog

This release contains various fixes for nctl.

What's Changed

  • enable docker client auto-negotiation by @thirdeyenick in #415
  • fix: nctl login suggestion text by @thirdeyenick in #401
  • fix: skip authentication for non-interactive commands by @thde in #402
  • fix(exec): avoid panic when redirecting application exec output by @thde in #404
  • fix(update): support unpausing applications with --no-pause by @thirdeyenick in #405
  • change the help text for default buildpack stack by @thirdeyenick in #406
  • fix(application): set default replicas on create, allow unsetting on update by @thirdeyenick in #407
  • build(deps): bump crate-ci/typos from 1.46.0 to 1.47.0 by @dependabot[bot] in #409
  • build(deps): bump k8s.io/client-go from 0.36.0 to 0.36.1 by @dependabot[bot] in #410
  • build(deps): bump k8s.io/kubectl from 0.36.0 to 0.36.1 by @dependabot[bot] in #411

Full Changelog: v1.18.0...v1.18.1

v1.18.0

Choose a tag to compare

@thde thde released this 08 May 13:08

Changelog

nctl exec for On-Demand Services

Adds nctl exec sub-commands for connecting directly to on-demand services: PostgreSQL instances and databases, MySQL instances and databases, and KeyValueStore. Using their native CLI clients.

❯ nctl exec postgresdatabase test
psql (18.3, server 17.9 (Ubuntu 17.9-1.pgdg24.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: postgresql)
Type "help" for help.

05571f2_e4416af=>

The following commands have been added:

  • nctl exec postgres <name> connects to a Postgres instance via psql
  • nctl exec postgresdatabase <name> connects to a PostgresDatabase via psql
  • nctl exec mysql <name> connects to a MySQL instance via mysql
  • nctl exec mysqldatabase <name> connects to a MySQLDatabase via mysql
  • nctl exec keyvaluestore <name> connects to a KeyValueStore via redis-cli

Access Management

For instance-level resources (Postgres, MySQL, KeyValueStore), the command detects the caller's public IP via ip.nine.ch, checks whether it is already in the allowed CIDR list, and if not prompts the user for confirmation before adding it.

The resource is then patched and connectivity is awaited before launching the CLI.

Import from stdin

The command also supports importing using stdin like so:

mysqldump -h source.example.com -u user -ppass mydb | nctl exec mysqldatabase mydb
pg_dump -h source.example.com -U user mydb | nctl exec postgresdatabase mydb

Following Logs

Previously, following logs for older apps could fail or be very slow. With the default 30-day window, apps with a lot of logs could force Loki to establish a live tail over a large historical range. This puts pressure on queriers and query frontends.

Now, we first fetch the requested backlog with the range query API, then start the WebSocket tail from the end of that range.

What's Changed

  • feat(exec): add exec support for on-demand services by @thde in #369
  • feat: avoid historical Loki live-tail queries by @pawelkuc in #397
  • fix: use maps instead of golang.org/x/exp/maps by @SaadAssaf in #399
  • build(deps): bump github.com/int128/kubelogin from 1.36.0 to 1.36.1 by @dependabot[bot] in #394
  • build(deps): bump github.com/mattn/go-isatty from 0.0.20 to 0.0.22 by @dependabot[bot] in #393
  • build(deps): bump crate-ci/typos from 1.45.0 to 1.46.0 by @dependabot[bot] in #391
  • build(deps): bump k8s.io/kubectl from 0.35.2 to 0.36.0 by @dependabot[bot] in #395

Full Changelog: v1.17.1...v1.18.0

v1.17.1

Choose a tag to compare

@gajicdev gajicdev released this 29 Apr 14:07
c788086

What's Changed

New Contributors

Full Changelog: v1.17.0...v1.17.1

v1.17.0

Choose a tag to compare

@gajicdev gajicdev released this 22 Apr 08:58
53c2a6e

What's Changed

  • fix: rebuild on language change by @thirdeyenick in #373
  • refactor: PostgresDatabase Collation Hint by @sislr in #374
  • build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #375
  • build(deps): bump crate-ci/typos from 1.44.0 to 1.45.0 by @dependabot[bot] in #376
  • build(deps): bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 by @dependabot[bot] in #378
  • build(deps): bump k8s.io/api from 0.35.2 to 0.35.3 by @dependabot[bot] in #380
  • build(deps): bump k8s.io/client-go from 0.35.2 to 0.35.3 by @dependabot[bot] in #379
  • build(deps): bump github.com/int128/kubelogin from 1.35.2 to 1.36.0 by @dependabot[bot] in #381
  • refactor: rename config to project-config and add config as alias by @SaadAssaf in #383
  • refactor: make help output more readable by @SaadAssaf in #386
  • feat(grafana): add command by @thirdeyenick in #387
  • add service linking for deploio apps by @gajicdev in #388

Full Changelog: v1.16.0...v1.17.0

v1.16.0

Choose a tag to compare

@thde thde released this 23 Mar 10:39
4a0fb0c

Changelog

  • Adds option to specify the collation for new PostgresDatabases.

What's Changed

  • feat(postgresdatabase): add option to specify collaction during creation by @josi19 in #370

Full Changelog: v1.15.0...v1.16.0

v1.15.0

Choose a tag to compare

@thde thde released this 20 Mar 14:13
3262d42

Changelog

  • Asks for confirmation before database deletion.
  • Adds structured output option to the whoami command.
  • Allows the configuration of custom headers for buckets.
  • Preparations for a new buildpack stack.

What's Changed

  • Print YAML and JSON output for whoami by @schmijos in #358
  • feat: add custom prompt for db deletion by @olknegate in #367
  • feat: add allowed-headers bucket CORS key by @sislr in #368
  • Add buildpack stack feature by @thirdeyenick in #371
  • build(deps): bump goreleaser/goreleaser-action from 6 to 7 by @dependabot[bot] in #361
  • build(deps): bump crate-ci/typos from 1.43.5 to 1.44.0 by @dependabot[bot] in #359
  • build(deps): bump k8s.io/kubectl from 0.35.0 to 0.35.2 by @dependabot[bot] in #363
  • build(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #360
  • build: fix govulncheck warnings by @thde in #366

New Contributors

Full Changelog: v1.14.2...v1.14.3

v1.14.2

Choose a tag to compare

@thde thde released this 26 Feb 10:03

Changelog

If you're using nctl auth set-project in CI with an APIServiceAccount you'll need to update the command to run nctl auth set-project --force.

Details

Until v1.14.0 nctl auth set-project would set a project without verifying if the user has access to that project in the first place. This led to confusion for users and therefore we introduced an error and suggestions how to verify which projects a user belongs to.

In some cases, nctl is unable to verify if it has access to a project and would always throw an error:

  1. When using an APIServiceAccount in a sub-project.
  2. When using an APIServiceAccount without organizational access.

The nctl auth set-project --force flag allows you to override these checks and set a project anyway.

What's Changed

  • fix: allow to force setting a project even if it can't be listed by @thde in #357

Full Changelog: v1.14.1...v1.14.2

v1.14.1

Choose a tag to compare

@thde thde released this 24 Feb 10:45

Changelog

  • Fixes a bug when updating the CORS for an S3 bucket. Flags that were not passed on update would default to false. This has been fixed so that only passed options are changed.

What's Changed

  • fix(bucket): preserve cors config on update by @thde in #356

Full Changelog: v1.14.0...v1.14.1

v1.14.0

Choose a tag to compare

@thde thde released this 23 Feb 15:43

Changelog

  • Adds suggestions and available options to different errors:
    ❯ nctl get postgresdatabase
     ✗ No "PostgresDatabases" found 💥
    
    Project: ninetest
    
    Suggested actions:
      - List all PostgresDatabases in your organization: nctl get postgresdatabases --all-projects
    
  • Adds new application sizes: standard-2 and standard-4
  • Improves project switching: If set-project cannot find the project in the current organization, it tries the user's other organizations from the token and switches to the one where the project exists.
  • Exposes project details in yaml and json output.
  • Adds the possibility to configure backup schedules for databases:
    nctl update postgresdatabase my-db --backup-schedule=daily
  • Improves autocomplete for projects.

What's Changed

  • feat(autocomplete): use selected project for autocompleting resources by @thde in #336
  • feat(errors): add suggestions and options to errors by @thde in #349
  • feat: add standard-4 application size by @gajicdev in #345
  • feat: switch organization when project is in another org by @SaadAssaf in #327
  • feat: expose project specs in yaml/json output by @coorasse in #339
  • feat: add backup schedule flag for economy databases by @skyfox14 in #335
  • refactor: replace ObjectsBucket usage with Bucket by @pawelkuc in #309
  • fix: fallback to COMP_LINE for project parsing by @thde in #338
  • docs: improve readme by @thde in #347
  • refactor: rename header from NAME to APP NAME by @schmijos in #346
  • refactor: configure output centrally, allow testing output by @thde in #348
  • refactor: split up utils package by @thde in #353
  • build(deps): update dependencies by @thde in #332
  • build(goreleaser): update config keys by @thde in #337
  • build(deps): bump golang.org/x/crypto from 0.46.0 to 0.47.0 by @dependabot[bot] in #343
  • build(deps): bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 by @dependabot[bot] in #340
  • build(deps): bump github.com/grafana/loki/v3 from 3.6.3 to 3.6.4 by @dependabot[bot] in #341
  • build(deps): update dependencies by @thde in #350
  • build(deps): bump crate-ci/typos from 1.41.0 to 1.43.5 by @dependabot[bot] in #354
  • build(deps): update to go1.26 by @thde in #355
  • test: align test patterns by @thde in #351

New Contributors

Full Changelog: v1.13.1...v1.14.0