v0.3
Pre-releaseBreaking 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
.