Skip to content

Releases: GoogleCloudPlatform/marketplace-k8s-app-tools

Helm tiller support (alpha)

29 Jan 23:26
8b73ef6
Compare
Choose a tag to compare
Support boolean application create property (#304)

Some helm charts wish to use global.application.create value
to control whether the Application resource should be included
in the generated manifests. This is the negation of the truthy
value of the existing APPLICATION_UID property.

Bug fixes

10 Dec 18:48
7eb6548
Compare
Choose a tag to compare

Bug fixes.

0.7.0 Release

05 Nov 19:46
c9c8870
Compare
Choose a tag to compare

New guide

We released a new guide for building deployers.

Breaking changes

The Makefiles are no longer in tools repo. If you wish to continue using them, please obtain a copy from click-to-deploy or example repos.

We found that Makefiles are too prescriptive. We recommend direct use of CLI commands to build and test your deployer. You can still choose to use our Makefiles for automation.

Release notes

  • This release changes partner integration points, but can run against deployers generated from preview versions. All tooling is now packaged in a dev container. See here for references.
  • Continuous testing blocking merging to master branch.
  • Continuous publishing of container images for each merge to master branch.

v0.6.2 Beta

13 Jul 19:33
183d98a
Compare
Choose a tag to compare
v0.6.2 Beta Pre-release
Pre-release

Beta

Since v0.6, we are now using the v1beta1 version of the Application resource. Please see v0.6.1 release notes.

New feature

Supporting base64 encoded string

Example:

properties:
  explicitPassword:
    type: string
    x-google-marketplace:
      type: STRING
      string:
        generatedProperties:
          base64Encoded: explicitPasswordEncoded

In your manifests, explicitPasswordEncoded can additionally be used. It contains the value of explicitPassword encoded in base 64.

v0.6.1 Beta!

12 Jul 23:17
Compare
Choose a tag to compare
v0.6.1 Beta! Pre-release
Pre-release

Breaking Change

Application CRD has been upgraded from v1alpha1 to v1beta1.

Upgrading your deployer

Make sure you pull the new versions of the base deployers.

docker pull gcr.io/cloud-marketplace-tools/k8s/deployer_helm:latest
docker pull gcr.io/cloud-marketplace-tools/k8s/deployer_envsubst:latest

In schema.yaml

Add the following line to (the top of) the file:

application_api_version: v1beta1

In Application manifest:

  1. Change apiVersion to app.k8s.io/v1beta1
  2. Move the following fields (all previously under spec) to a new field called descriptor:
  • type
  • version
  • description
  • maintainers
  • owners
  • keywords
  • links
  • notes

An example of the new Application manifest can be found here.

Development

Only one version of the Application CRD can be present in a given cluster. To upgrade a cluster with a previous version of the CRD installed:

  • Delete all Application instances in the cluster.1
  • Delete the CRD: kubectl delete crd applications.app.k8s.io
  • Install the new CRD (make crd/install if you use our Makefile system)

1 existing v1alpha1 applications won't be retrievable/deletable from the k8s API any more once the CRD is deleted.

New feature

Supporting multi-part image properties

Example:

properties:
  imageNginx.image:
    type: string
    default: marketplace.gcr.io/google/nginx:1.0
    x-google-marketplace:
      type: IMAGE
      image:
        generatedProperties:
          splitByColon:
            before: imageNginx.repo
            after: imageNginx.tag

In your manifests, the following two properties can be used:

  • imageNginx.repo, which should have the value of marketplace.gcr.io/google/nginx for the default value.
  • imageNginx.tag, which should have the value of 1.0 for the default value.

v0.5.3

12 Jul 22:29
Compare
Choose a tag to compare
v0.5.3 Pre-release
Pre-release

New features

Supporting multi-part image properties

Example:

properties:
  imageNginx.image:
    type: string
    default: marketplace.gcr.io/google/nginx:1.0
    x-google-marketplace:
      type: IMAGE
      image:
        generatedProperties:
          splitByColon:
            before: imageNginx.repo
            after: imageNginx.tag

In your manifests, the following two additional properties can be used:

  • imageNginx.repo, which should have the value of marketplace.gcr.io/google/nginx for the default value.
  • imageNginx.tag, which should have the value of 1.0 for the default value.

Supporting base64 encoded string

Example:

properties:
  explicitPassword:
    type: string
    x-google-marketplace:
      type: STRING
      string:
        generatedProperties:
          base64Encoded: explicitPasswordEncoded

In your manifests, explicitPasswordEncoded can additionally be used. It contains the value of explicitPassword encoded in base 64.

v0.5.1

11 Jul 22:53
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

#BUGFIX

  • Fixed the dns1123 validation

v0.5

09 Jul 23:24
19ab694
Compare
Choose a tag to compare
v0.5 Pre-release
Pre-release

Bug fixes.

v0.4

28 Jun 22:20
a2980f3
Compare
Choose a tag to compare
v0.4 Pre-release
Pre-release

Breaking changes

  • Please update your Dockerfile's FROM line. The deployer base images moved from gcr.io/google-marketplace-tools/k8s/deployer_helm to gcr.io/cloud-marketplace-tools/k8s/deployer_helm. See example.

Fixes

  • Fixes for Mac OS compatibility issues. Command make app/verify now works correctly on Mac OS.

New features

v0.3

20 Jun 17:56
7fa12e0
Compare
Choose a tag to compare
v0.3 Pre-release
Pre-release

Breaking changes

Scripts

Start.sh

Script start.sh doesn't have --test_parameters anymore. The parameters for testing should be specified in --parameters.

Script start_test.sh is deprecated. Verification should use 'start.sh' with with --entrypoint set to 'deploy_with_tests.sh'

Complete example here.

Stop.sh

Script stop.sh now requires extra parameters:

  • --namespace: to specify the kubernetes namespace
  • --name: to specify the name of the application

Example here.

Driver.sh

Script driver.sh now requires --parameters, the same way start.sh does. Example here.

Features

Schema file

Supporting Service Account and Storage Class as dependency resources

Some dependency resources can be now be specified through schema files. If the resource does not exist yet, a new resource will be provisioned according to the specifications required for that resource (examples are based on the different type of resources). For now, we support Service Account and Storage Class.

Service account

In schema.yaml:

properties:
  operatorServiceAccount:
    type: string
    x-google-marketplace:
      type: SERVICE_ACCOUNT
      serviceAccount:
        roles:
        # You can list one or more roles following the examples below.
        - type: ClusterRole        # This is a cluster-wide ClusterRole
          rulesType: PREDEFINED
          rulesFromRoleName: edit  # Use predefined role named "edit"
        - type: Role               # This is a namespaced Role
          rulesType: CUSTOM        # We specify our own custom RBAC rules
          rules:
          - apiGroups: ['apps.kubernetes.io/v1alpha1']
            resources: ['Application']
            verbs: ['*']
        - type: ClusterRole
          rulesType: CUSTOM
          rules:
          - apiGroups: ['etcd.database.coreos.com/v1beta2']
            resources: ['EtcdCluster']	
            verbs: ['*']

The resulting ServiceAccount (as well as Roles and RoleBindings) will be created in the same namespace as the application.

This is a real usage example from spark operator app.

SSD storage class

In schema.yaml:

properties:
  storageClass:
    type: string
    x-google-marketplace:
      type: STORAGE_CLASS
      storageClass:
        type: SSD

Dependency resources can be referenced by its property name in manifests, just like any other property defined in schema.yaml.