Override
The override policy provides a mechanism to overwrite fields of the rendered Kubernetes entities. This type of policy can be used to set common labels to all component, add debug arguments to commands, etc. In combination with the deploy workflow step, the effect of the policy can be restricted to a subset of components.
The following snippet shows an application making use of an override policy to alter different component fields.
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: my-app
spec:
components:
- name: my-component
type: worker
properties:
image: my-app-image:v1.0.0
policies:
- name: policy-name # Policy Name
type: override # Set to override
properties:
components:
# Example 1
- name: my-component # (Optional) Name of the component to override. If empty, all components will be merged
properties: # (Optional) Properties
image: my-app-image:v2.0.0 # patch the image (p.e.)
# Example 2
- type: worker # (Optional) type of the component to patch
traits: # (Optional) Trait to apply
- type: scaler # Trait type
properties:
replicas: 2
workflow:
steps:
- type: deploy # Uses a deploy step to deploy components with policies
name: deploy-test
properties:
policies: ["policy-name"]