Functions
time
Time related functions.
Configuring the local timezone
The time functions can be used in both notification templates and triggers.
When converting a time value to local time using .Local(), Argo CD Notifications uses the local timezone configured for the argocd-notifications-controller container.
You can configure this timezone by setting the TZ environment variable on the argocd-notifications-controller container:
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd-notifications-controller
spec:
template:
spec:
containers:
- name: argocd-notifications-controller
env:
- name: TZ
value: Asia/TokyoFor example, a notification template can format an application timestamp in the configured local timezone:
{{ (call .time.Parse .app.status.operationState.startedAt).Local.Format "2006-01-02T15:04:05Z07:00" }}**`time.Now() Time`**
Executes function built-in Golang time.Now function. Returns an instance of Golang Time.
**`time.Parse(val string) Time`**
Parses specified string using RFC3339 layout. Returns an instance of Golang Time.
Time related constants.
Durations
time.Nanosecond = 1
time.Microsecond = 1000 * Nanosecond
time.Millisecond = 1000 * Microsecond
time.Second = 1000 * Millisecond
time.Minute = 60 * Second
time.Hour = 60 * MinuteTimestamps
Used when formatting time instances as strings (e.g. time.Now().Format(time.RFC3339)).
time.Layout = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.
time.ANSIC = "Mon Jan _2 15:04:05 2006"
time.UnixDate = "Mon Jan _2 15:04:05 MST 2006"
time.RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
time.RFC822 = "02 Jan 06 15:04 MST"
time.RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
time.RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
time.RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
time.RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
time.RFC3339 = "2006-01-02T15:04:05Z07:00"
time.RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
time.Kitchen = "3:04PM"
// Handy time stamps.
time.Stamp = "Jan _2 15:04:05"
time.StampMilli = "Jan _2 15:04:05.000"
time.StampMicro = "Jan _2 15:04:05.000000"
time.StampNano = "Jan _2 15:04:05.000000000"strings
String related functions.
**`strings.ReplaceAll() string`**
Executes function built-in Golang strings.ReplaceAll function.
**`strings.ToUpper() string`**
Executes function built-in Golang strings.ToUpper function.
**`strings.ToLower() string`**
Executes function built-in Golang strings.ToLower function.
sync
**`sync.GetInfoItem(app map, name string) string`** Returns the `info` item value by given name stored in the Argo CD App sync operation.
repo
Functions that provide additional information about Application source repository.
**`repo.RepoURLToHTTPS(url string) string`**
Transforms given GIT URL into HTTPs format.
**`repo.FullNameByRepoURL(url string) string`**
Returns repository URL full name (<owner>/<repoName>). Currently supports only Github, GitLab and Bitbucket.
**`repo.QueryEscape(s string) string`**
QueryEscape escapes the string, so it can be safely placed inside a URL
Example:
/projects/{{ call .repo.QueryEscape (call .repo.FullNameByRepoURL .app.status.RepoURL) }}/merge_requests**`repo.GetCommitMetadata(sha string) CommitMetadata`**
Returns commit metadata. The commit must belong to the application source repository. CommitMetadata fields:
Message stringcommit messageAuthor string- commit authorDate time.Time- commit creation dateTags []string- Associated tags
**`repo.GetAppDetails() AppDetail`**
Returns application details. AppDetail fields:
Type string- AppDetail typeHelm HelmAppSpec- Helm details- Fields :
Name stringValueFiles []stringParameters []*v1alpha1.HelmParameterValues stringFileParameters []*v1alpha1.HelmFileParameter
- Methods :
GetParameterValueByName(Name string)Retrieve value by name in Parameters fieldGetFileParameterPathByName(Name string)Retrieve path by name in FileParameters field
- Fields :
Kustomize *apiclient.KustomizeAppSpec- Kustomize detailsDirectory *apiclient.DirectoryAppSpec- Directory details
