All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project's packages adheres to Semantic Versioning.
- Disable colored output on Windows to avoid printing of ANSII escape codes.
2.7.10 - 2022-04-20
- Build signed Windows binaries
- Extend CI config to include the Windows package in the Krew index when a new release is published
2.7.1 - 2022-04-14
- Improved description of the
--control-plane-az
parameter when templating a cluster.
2.7.0 - 2022-04-01
- In
kubectl gs login
, add support for workload clusters on OpenStack.
2.6.0 - 2022-03-31
- Add templating for clusters using Cluster API provider Google Cloud (CAPG).
- Make the region and availability zones flags optional for CAPA clusters.
2.5.0 - 2022-03-23
- Add cluster name label to Cluster API provider AWS (CAPA) Apps and ConfigMaps created with
kubectl-gs template
2.4.0 - 2022-03-21
- Add tests for
kubectl gs login
. - Add
--visibility
flag totemplate catalog
to add label to control display in web UI.
- Look up cluster-related AppCatalogEntries in the
giantswarm
namespace instead of thedefault
namespace.
2.3.1 - 2022-03-11
- Set correct labels of GiantSwarm components on cluster templates.
login
: simplify description for the--certificate-ttl
flag.
2.3.0 - 2022-03-09
- Add description column to the
get catalog
limited to 80 characters. - Add
--enable-long-names
feature flag totemplate cluster/networkpool/nodepool
to allow resource names longer than 5 characters. Only for internal testing. - Implement
get clusters
command for OpenStack.
- Add missing availability zones to cluster configuration for OpenStack.
- Change default catalog for
cluster-*
anddefault-apps-*
apps fromgiantswarm
tocluster
.
2.2.0 - 2022-03-04
- Add OIDC flags to the
template cluster
command (OpenStack only).
- Improve flag handling and naming for
template cluster
command (no user facing changes). - Add new flags for
template cluster --provider-openstack
to be able to use existing networks and subnets.
2.1.1 - 2022-02-25
- Fixed crash if listing nodepools when one is missing the release version label.
- Add audit log configuration file to the
KubeadmControlPlane
CR. - Use the CAPZ controller manager env vars for control-plane identity when authenticating to Azure API.
2.1.0 - 2022-02-08
login
command: Try logging in again if token renewal fails.- Add
security
API group to scheme in order to getorganizations
duringlogin
.
- Enable logging into clusters in all versions and namespaces if
--insecure-namespace
flag is active. - Simplify log in with context name
- Add support for self-contained kubeconfig creation for management cluster context.
- Add
--keep-context
flag tologin
.
2.0.0 - 2022-02-04
- Enable
cluster-topology
templates for OpenStack by default. - Update default
cluster-openstack
version to 0.3.0.
- Remove deprecated
--cluster-id
flag fromget nodepools
,template cluster
, andtemplate nodepool
commands. Replaced by--cluster-name
. - Remove deprecated
--owner
flag fromtemplate cluster
,template networkpool
, andtemplate nodepool
commands. Replaced by--organization
. - Remove deprecated
--master-az
flag fromtemplate cluster
command. Replaced by--control-plane-az
. - Remove deprecated
--nodepool-name
flag fromtemplate nodepool
command. Replaced by--description
. - Remove deprecated
--nodex-min
flag fromtemplate nodepool
command. Replaced by--nodes-min
. - Remove deprecated
--nodex-max
flag fromtemplate nodepool
command. Replaced by--nodes-max
.
- Add support for templating App CRs in organization namespace.
- Add
--catalog-namespace
flag totemplate app
.
1.60.0 - 2022-01-27
- Use
v1beta1
api version when templating ClusterAPI manifests on Azure.
1.59.0 - 2022-01-26
- Add support to
template cluster --provider openstack
for templating clusters as App CRs.
1.58.2 - 2022-01-13
- Add
--in-cluster
flag totemplate app
command to support installation of MC apps.
login
command: Prevent deletion of all CertConfig resources in a namespace, instead delete only one.- Adjust
login
to consider other prefixes while parsing the MC API endpoint.
1.58.1 - 2021-12-17
- Populate the nodepool release label for AWS provider
1.58.0 - 2021-12-14
- Add support cluster updates and scheduling cluster updates.
1.57.0 - 2021-12-09
- Modify
STATUS
column ofget releases
command table output to display release state.
1.56.0 - 2021-12-07
- Add support for the new URL scheme
api.INSTALLATION.OWNER_ID.gigantic.io
forkubectl-gs login
command.
1.55.0 - 2021-12-06
- Add alpha support for OpenStack cluster templating.
1.54.0 - 2021-12-03
- Fix a problem preventing the
login
command from creating a client certificate for older workload clusters on Azure. - Fix the problem where the
template cluster
output for a v20 Cluster API cluster on AWS contained a bad infrastructure reference, resulting in the cluster not being provisioned.
1.53.0 - 2021-11-29
- Disable version caching for the
selfupdate
command, so you will always get the latest version right after it's released. - Make the
--release
flag mandatory in thetemplate cluster
andtemplate nodepool
subcommands.
1.52.0 - 2021-11-23
- Replace the
CREATED
column withAGE
in all theget
subcommand table outputs.
1.51.0 - 2021-11-18
- Add the ability of executing the management cluster login part of the
login
command with aServiceAccount
token.
1.50.1 - 2021-11-17
- Strip ':' suffix when requesting a client certificate.
1.50.0 - 2021-11-17
- Add
--self-contained
flag tokubectl-gs login
command for workload clusters to allow output of standalone kubeconfig file.
1.49.0 - 2021-11-16
- Validate
--certificate-ttl
flag of thelogin
command.
1.48.1 - 2021-11-11
- Fix self-update command suggestion in the update warning.
1.48.0 - 2021-11-11
- Allow using
ServiceAccount
tokens for creating workload cluster certificates. - Let users override their kubectl config using flags in the
login
command.
1.47.0 - 2021-11-09
- Print warning after running any command if there is a newer version available.
- Implement command for self-updating (
kubectl gs selfupdate
).
- Make the
--organization
flag optional when using thelogin
command with a workload cluster. The cluster will be searched in all the organization namespaces that the user has access to.
1.46.0 - 2021-11-09
- Find
Cluster
resources on AWS based on thegiantswarm.io/cluster
label if thecluster.x-k8s.io/cluster-name
label does not yield results. - Add
cluster.x-k8s.io/cluster-name
label to all CRs created by AWS Cluster and Nodepol templating.
- Usa CAPI templates for all releases from
v20.0.0-alpha1
onwards, to include alpha and beta releases. - Move AWS Cluster templating from
apiextensions
- Move AWS Node Pool templating from
apiextensions
1.45.0 - 2021-10-26
- Add support for updating
App
CRs.
1.44.0 - 2021-10-25
- Add support for creating workload cluster client certificates using the
login
command.
1.43.1 - 2021-10-15
- Fix a problem with fetching Catalog CRs in
validate apps
. - Fixing a problem where the function to fetch the SSH secret to generate the templates was using
inCluster
config ignoring the kubeconfig.
1.43.0 - 2021-10-13
- Add templating for EKS clusters using the management cluster API
- Add templating for EKS node pools using the management cluster API
- Add templating for CAPA node pools using the management cluster API
- In the
get catalogs
command output, rename the columAPP VERSION
toUPSTREAM VERSION
and change the column order.
1.42.1 - 2021-10-08
- Fix a problem where the template subcommands would be slower than expected because of obsolete API requests.
1.42.0 - 2021-10-07
- Add CRs to create a bastion host in CAPZ cluster template.
- Enable termination events for CAPZ node pools.
1.41.1 - 2021-10-04
- Use org-namespace for AWS Clusters by default
1.41.0 - 2021-10-04
- Nodepool nodes are labeled with nodepool id on AWS using
giantswarm.io/machine-pool
. MachinePool
andAzureMachinePool
are labeled with thegiantswarm.io/machine-pool
label.get releases
command to return details of available releases.
1.40.0 - 2021-09-24
- Nodepool nodes are labeled with nodepool id on Azure using
giantswarm.io/machine-pool
.
- Update the
template cluster
command to add CAPI defaults and validation using the management cluster API.
1.39.2 - 2021-09-17
- In the
template cluster
andtemplate nodepool
commands, the--owner
flag got replaced by--organization
.
1.39.1 - 2021-09-14
- The
template organization
command now also offers an--output
flag to specify an output path optionally.
- In the
template
commands, the flag--owner
is replaced by--organization
. - Make the
login
command be able to start a new authentication flow if one of the tokens of an existing authentication provider are not present. - Update cluster templating error messages for
--name
flag to use correct terminology
1.39.0 - 2021-09-10
- Add support for templating
Organization
CRs.
- Allow providing Kubernetes API URLs with prefixes to the
login
command.
1.38.0 - 2021-09-08
- Add tags to enable
cluster autoscaler
to Azure Node Pool template. - Enable system assigned identity in Azure CAPI clusters' master nodes.
- Set routing table in master subnet in Azure CAPI clusters.
- Set
cluster.giantswarm.io/description
annotation forCluster
CR in template generation command on Azure. - Set
machine-pool.giantswarm.io/name
annotation forMachinePool
CR in template generation command on Azure.
1.37.0 - 2021-09-03
- Template cluster and nodepool resources in the org-namespace from AWS release
16.0.0
onwards.
- Added
aws-cluster-namespace
flag for nodepools to override the standard namespace to support nodepool creation for upgraded >v16.0.0 clusters that remain in the default namespace. - Added support to generate templates for CAPZ clusters and node pools.
1.36.0 - 2021-08-26
kubectl gs login
now offers the flag--callback-port
to specify the port number the OIDC callback server on localhost should use.
1.35.1 - 2021-08-24
- Update the Dockerfile to include kuebctl v1.19 and be based on Alpine v3.14.1.
- Make the
login
command continue to work even if opening the default browser fails.
1.35.0 - 2021-08-11
- Apply only
v1alpha3
CRs on provider AWS.
- Add CRs to create bastion host, when creating a CAPI cluster via
template cluster
command. - Add configuration to allow SSH for Giant Swarm employees when creating CAPI cluster. Applies to
template cluster
andtemplate nodepool
commands. - Update template version for CAPA cluster and nodepool templating to version 0.6.8
1.34.0 - 2021-07-30
Throughout our UIs and documentation we are aligning our terminology regarding cluster and node pool details, to use consistent terminology matching our Management API. The unique, immutable identifier that was formerly called ID in our user interfaces, is now called the name. The user-friendly, changeable description of the cluster's and node pool's purpose was called name in our UIs and is now called the description.
Warning: This terminology change results in a breaking change in the template cluster
command, as the purpose of the flag --name
has changed. Also several flags in other commands have been deprecated.
If you are upgrading from an earlier releases, apply these changes to migrate any scripts:
- When using
template cluster
, replace--name
with--description
to set the user-friendly cluster description, and replace--cluster-id
with--name
to set the cluster's unique identifier. - When using
template nodepool
, replace--cluster-id
with--cluster-name
.
template app
: Added the--namespace-annotations
and--namespace-labels
flags to allow users to specify thenamespaceConfig
of the generatedApp
manifest. Read App CR's target namespace configuration for more information.
get clusters
:- The output table header
ID
has been renamed toNAME
.
- The output table header
get nodepools
:- The
--cluster-id
flag is now deprecated, replaced with--cluster-name
. - Output column headers have been renamed from
ID
toNAME
and fromCLUSTER ID
toCLUSTER NAME
.
- The
template cluster
:- Deprecated the
--cluster-id
flag. - Breaking: the
--name
flag changed purpose to set the cluster's unique identifier. - The
--description
flag has been added to set the user-friendly description.
- Deprecated the
template nodepool
:- Deprecated the
--cluster-id
flag, added the--cluster-name
flag as a replacement. - Deprecated the
--nodepool-name
flag, add the--description
flag as a replacement.
- Deprecated the
1.33.0 - 2021-07-19
- Add support for Spot VMs for Azure Node Pools.
1.32.0 - 2021-07-16
- Replace AppCatalog CRD with new namespace scoped Catalog CRD.
- Add templating using CAPA upstream templates for clusters in release version
v20.0.0
on AWS. - Add templating using CAPA upstream templates for machinepools in release version
v20.0.0
on AWS. - Add optional
--release
flag to nodepool templating so that the new functionality can be used for CAPA versions.
- Extend
login
error message to mention if OIDC is configured.
1.31.0 - 2021-07-08
- Allow overriding the app CR name in the
template app
command.
- Update Dockerfile to use alpine:3.14 as a base image
1.30.0 - 2021-06-29
- Extend
template app
to only output required fields, the flag--defaulting-enabled
can be set to false to disable this.
1.29.2 - 2021-06-17
- In the
template cluster
command, the flag--control-plane-az
is replacing--master-az
.
1.29.1 - 2021-06-16
- Modify the AWS subnet validation for machine deployments.
1.29.0 - 2021-06-15
- Add the AWS subnet annotations into the
template
command. - Limit the time allowed for the
login
command to call the authentication proxy to one minute.
- Updated terminology to use "control plane nodes" instead of "master nodes".
1.28.0 - 2021-05-11
- Disable unique AZ validation to allow China cluster templating.
- Only set configmap or secret in
template appcatalog
if values are provided.
- Add
get appcatalogs
andget apps
commands.
1.27.1 - 2021-04-28
- Bug fixed on the internal API URL composition.
1.27.0 - 2021-04-27
- Publish darwin and linux arm64 to krew index.
- Login command now supports internal API.
- Fix templating nested YAML for configmaps and secrets referenced in App and AppCatalog CRs.
1.26.0 - 2021-04-13
- Add clusterresourcesets and clusterresourcesetbindings CRDs to the information about Cluster API CRDs and controllers.
- Removed the
--num-availability-zones
flag from thekubectl-gs template
commands. The--availability-zones
flag should be used to specify a list of availability zones.
- Build release binaries using go 1.16. Kubectl-gs is now available for Linux and Darwin ARM64 machines including Apple M1 Macs.
- Upgrade dependency github.com/giantswarm/app to 4.9.0
- Fetch installation information using a new service, instead of relying on the Giant Swarm REST API.
1.25.0 - 2021-03-16
- Disallow provided cluster IDs from starting with a digit.
1.24.0 - 2021-03-10
- Add support for showing information about Cluster API CRDs and controllers.
- Switch to a PKCE authentication flow.
- If the CLI quits with an error, display the error via the default OS error stream.
1.23.0 - 2021-02-24
- Allow having node pools with the scaling set to
0
.
1.22.0 - 2021-02-11
- The
MachinePool
CRs now hold a reference to theSpark
CR in theirspec.template.spec.bootstrap.configRef
field. - Add missing fields when templating
AzureMachine
andAzureCluster
, in order to pass CAPZ validation.
1.21.0 - 2021-01-29
- Make the
login
command validate the current context before considering it good to go. - Re-enabled the
--pods-cidr
flag in thetemplate cluster
command. - Return the Cluster API
Cluster
resource when using theget clusters
command withYAML
/JSON
output.
1.20.0 - 2021-01-18
- Add support for getting nodepools.
- Remove the mention of the unexistent 'create cluster' command.
1.19.0 - 2021-01-12
- Add support for node pool autoscaling on Azure.
0.18.0 - 2020-12-14
0.17.0 - 2020-12-14
- Allow for empty
--release
flag in AWS since it is defaulted in the admission controller. - Allow for empty
--master-az
flag in AWS since it is defaulted in the admission controller. - Allow for empty
--name
flag in AWS since it is defaulted in the admission controller.
- Removed the
--domain
flag since it is managed by admission controller. - Removed defaulting of the
--provider
flag fortemplate cluster
andtemplate nodepool
commands.
0.16.0 - 2020-12-09
- In the
template nodepool
command, the flags--nodex-min
and--nodex-max
have been renamed to--nodes-min
and--nodes-max
.
0.15.0 - 2020-12-07
- Add support for fetching installation information using non-standard Giant Swarm API URLs.
- Removed the
--credential
flag, now it is managed by admission controller.
0.14.0 - 2020-11-24
- Add
--cluster-admin
flag tologin
command, which allows full access for Giant Swarm staff. - Print namespace when using the
get clusters
command with the--all-namespaces
flag.
- Remove client-side validation of the GS
release
when creating aCluster
's template.
0.13.0 - 2020-11-20
- Removed the
--release
and--release-branch
version fromkubectl-gs template nodepool
command.
0.12.0 - 2020-11-13
- Removed the
--region
flag from thekubectl-gs template
commands. Region gets set automatically according to the installation the cluster is created in.
- Added the
validate apps
command for validating the values of apps against thevalues.schema.json
in their chart, or against avalues.schema.json
locally via a path provided through the command line.
0.11.0 - 2020-10-29
- Add support for using a custom namespace set for a specific Kubernetes context in the Kubeconfig file.
- Add support for using the
--all-namespaces, -A
flag for listing resources in all namespaces.
0.10.0 - 2020-10-23
- Removed availability zones for
GermanyWestCentral
inAzure
. - Removed the
--domain
flag onAzure
.
0.9.0 - 2020-10-16
- Remove SSH key parameter for azure in the template command.
0.8.0 - 2020-10-14
- Start publishing a container image of kubectl-gs as giantswarm/kubectl-gs
- Normalize organization name when used as a namespace, to match company requirements.
- Allow using inactive release versions for templating clusters. This is especially useful for testing cluster upgrades.
0.7.2 - 2020-10-12
- Store Azure node pools resources in the organization-specific namespace.
- Display full error output when getting installation info fails or when the OIDC configuration is incorrect, while running the
login
command fails. - Use proper CAPI conditions to determine Azure Cluster status.
- Use the custom releases branch when fetching release components.
0.7.1 - 2020-09-30
- Add support for using a custom release branch when templating clusters or node pools.
- Change the default Azure VM size to
Standard_D4s_v3
- Store all Azure resources in the organization-specific namespace.
- Use correct K8s API version for Cluster API Machine Pools.
0.7.0 - 2020-09-30
- Add support for templating clusters and node pools on Azure.
- Add support for templating NetworkPools.
0.6.1 - 2020-09-14
- Add the
--version
flag for printing the current version. Runkgs --version
to check which version you're running.
- Disabled templating clusters with legacy or deprecated release versions.
- Allow specifying the
--release
flag for templating clusters and node pools with leadingv
.
0.6.0 - 2020-08-11
- Implemented support for the
get cluster(s) <id>
command. - Improved error printing formatting.
- Running the
template
command without any arguments how displays the command help output.
0.5.5 - 2020-07-28
- Make executable work on lightweight linux distributions, such as
alpine
.
0.5.4 - 2020-07-24
- Prevent breaking the client's kubeconfig if token renewal fails.
- Add
--use-alike-instance-types
for node pools.
0.5.3 - 2020-07-13
- Add
kubectl gs login
command (#85, #86, #87)
0.5.2 - 2020-07-03
No changes
0.5.1 - 2020-07-03
- Several changes regarding the use as a kubectl plugin
- Remove non-existing AZ cn-north-1c (#54)
- Allow specifying tenant cluster labels through --label flags (#55)
- Update main README, Installation docs for Krew (#56)
0.5.0 2020-06-10
- Add support for organization credentials
0.4.0 2020-06-09
- Add support for new release info structure
0.3.5 2020-06-04
- Add goreleaser github action
- Add instance distribution (#48)
- Remove default node pool creation (#49)
0.3.4 2020-05-27
- Add support for AWS China giantswarm#47
- add AWS availability zone
ap-southeast-1a
giantswarm#46
0.3.3 2020-05-21
- Add External SNAT option
0.3.2 2020-05-08
- Allow user to create cluster with cluster ID containing
[a-z0-9]
0.3.1 2020-05-06
- Fix mixed namespace/cluster namespaces usage in App CR
0.3.0 2020-05-06
- Allow user to specify Cluster ID
0.2.0 2020-03-26
- Added
pods-cidr
flag to generate pods CIDR in Cluster CRs - Added support for new Release CR
0.1.0 2020-03-26
This release supports rendering for CRs:
- Tenant cluster control plane:
Cluster
(API versioncluster.x-k8s.io/v1alpha2
)AWSCluster
(API versioninfrastructure.giantswarm.io/v1alpha2
)
- Node pool:
MachineDeployment
(API versioncluster.x-k8s.io/v1alpha2
)AWSMachineDeployment
(API versioninfrastructure.giantswarm.io/v1alpha2
)
AppCatalog
App