►
From YouTube: 2023-03-30 Dov/Jocelyn Variables Deep Dive
Description
Brain dump on variables from Dov as part of the category transition.
B
All
right,
it
is
March
30th.
This
is
myself
and
Dove
digging
into
variables
as
part
of
the
secrets,
management,
Handover.
A
A
I
would
like
to
start
by
saying
that,
like
a
festival
like
volleyball
variables
is
one
of
the
most
popular
features
that
we
have
in
gitlab
many
users,
if
not
all
you'll
see
our
users
are
using
it,
and
but
it
also
carry
a
lot
of
I,
would
say
like
long
designs
and
a
lot
of
bugs
a
lot
of
technical
that
that
we
or
you
eventually
may
end
up
fixing
or
or
we
thinking
about
so,
let's,
let's
start
in
a
high
level,
and
first
of
all
there
are
say,
generally
speaking,
there
are
like
two
types
of
variable
and
we
have
it's
not
big
screen,
it's
actually
predefined.
A
If
you
go
to
our
documentation,
there
is
a
list
of
predefined
variables
right.
This
is
the
this
is.
This
is
the
list
and
they
always
have
like
the
same
value
again
depends
on
what
this
variable
is,
for
instance,
like
commit
CR
commit,
who
is
the
author,
the
commit
branch,
and
so
there
are
like
a
there
is
a
lot
as
you
can
see
right,
and
there
are
always
like
requests
for.
Like
can
you
add
another
predefined
variable
that
contain
this
version,
this
this
value
on
that
value
and
I?
A
Think
that,
like
predefined
variable
is
like
it's,
it's
basically
stand
up.
It
was
on
CI
Pipelines.
The
second
type
is
custom
variables
and
custom
variables
are
variables
that
the
user
will
set
by
themselves,
and
also
here
they
are
like.
There
are
I
would
say
two
main
ways
to
inject
variables.
One
is
the
yaml
variable.
Okay,
when
you
just
like,
if
you,
if
you
go
to
like
any
any
pipeline,
okay,
it
doesn't
matter
which
one.
A
You
will
always
say
like
variable,
and
this
is
how
you
define
the
variable.
This
is
one
way
of
defining
a
variable,
like
the
top
level
variable
that
is
commonly
used
and
has
like
a
lot
a
lot
of
problems
because
of
the
fact
that
it's
like
a
top
level
variable
and
we'll
we'll
discuss
that.
A
But
this
is
like
very
I
would
say
one
of
the
most
common
ways
and
to
set
up
to
set
up
variables
just
like
top
level
and
a
variable
and
a
value,
a
variable
and
one
and
then
like
once
defined
they
actually
it's
it's
actually
kind
of
like
a
global
variable.
It
actually
applies
to
all
your
pipeline.
Okay,
all
the
all
the
things
that
are
all
the
jobs
Downstream
pipeline.
Also
and
again,
there
are.
There
are
some
neurons
where
you
can
override,
and
this
is
where
the
the
challenge
becomes.
A
A
There
is
like
the
variable
you
expand
it,
and
there
are
also
variables
that
you
can
Define
here.
You
see,
there
are
like
many
many
variables,
oh
yeah,
a
lot
of
variables
and
each
variable
they
have
like
different
different
settings.
There
could
be
like
a
file
variable
and
then
there
are
two
types
of
variables
like
a
file:
it's
actually
a
file
that
contain
a
value,
and
when
you
reference
that
file,
you
actually
reference
the
path
and
not
the
value.
A
Usually
usually,
this
is
where
they
store
like
keys,
and
so
then
you
can
use
it
with
scripts.
Basically,
you
can
create
like
a
file,
and
the
key
is
if
I
remember
correctly
is
the
path
and
the
value
is.
The
key
is
the
name
of
the
variable,
the
name
of
the
file,
and
then
the
value
is
the
content
of
the
file
of
the
file,
and
there
are.
There
is
like
a
variable
which
is
like
a
variable.
A
You
can
scope
variable
for
different
environments,
so
it
means
that
this
variable
can
work
on
specific
environments
that
you
define
in
your
yaml
so
like
you
can
define
an
environment
in
the
name
of
the
environment,
and
it
means
that
this
variable
will
be
scoping
to
that
protected
environment,
a
protected
variable
fibers
that
runs
only
on
protected
branch
and
tags.
Okay,
a
mask
variable:
it
is
available
that
this
is
where
users
normally
use
this
use
Secrets.
They
are
using
it
with
with.
A
The
Mask
variable.
It
means
that
you
cannot
Echo
that
variable
normally,
when
you
want
to
test
something,
you
just
Echo
the
variable,
and
it
is
echoing
the
value.
But
if
you
go
to
escape
then,
like
you
Echo
the
variable
value,
it
will
not
be
presented,
it's
not
I
would
say
it's
not
it's
not
a
very
secure
method,
because
basically,
what
we
do
is
I
think
we
are
just
looking
for
the
regular
expression
of
the
value
and
just
we
don't,
and
we
just
don't
display
tons
of
way
you
can
override.
A
You
can
override
that,
like
you
can
just
like
Echo
the
variable
and
just
add
the
DOT
and
like
in
the
middle
of
of
the
variable
like
with
the
with
also
with
with
the
with
regular
expression,
and
then
you
actually
see
the
value,
but
like
dots
or
spaces.
Basically,
if
you,
if
you
manipulate
the
value
just
a
little
bit,
you'll
be
able
to
to
expose
it,
and
the
third
thing
here
is
expand.
Variable
reference.
A
There
are
many
many
I
would
say
there
are
many
variables
that
actually,
when
you
define
the
key,
you
actually
Define
like
another
variable,
the
way
to
to
define
a
bubble
is
with
with
the
dollar
sign.
So
if
I'm
doing
like
the
key
is
I,
don't
know
my
wrong.
A
A
A
A
A
My
dog
is
doing
like
weird
noises
behind
us,
and
so
this
is
like
this
is
like
a
way
telling
like
use,
use
the
variable
as
is
or
use
the
special
characters
as
the
way
we
actually
intend
them
to
be
like
yeah,
either
with
a
variable
electrons,
and
there
is
a
way
also
to
set
this
flag
in
the
armor.
So
you
can
you
can
Define
and
expand
or
expandable
variable
in
yield
to
the
UI,
and
there
is
also
a
way
to
do
it.
A
Why
users,
some
users
like
to
do
it
from
here,
and
why
other
users
do
it
like?
So
most
of
the
time
users
will
referred
to
those
variables.
Those
will
be
you
see.
Those
are
like
keys
tokens
which
you
don't
want
to
store
in
your
yaml
because
you'll
store
it
is,
and
it
is
plain
text,
so
you
don't
want
anyone
that
have
access
to
your
yaml
to
actually
see
your
tokens
and
password.
A
This
area
doesn't
make
sense.
No
the
area
doesn't
make
sense.
Users
always
said
that
we
need
to
move
that,
but
now
moving
things
around
to
the
left
navigation
is
it's
very
difficult,
probably
put
it
somewhere
here,
maybe
somewhere
here,
maybe
within
that
or
maybe
I
don't
know.
But
okay,
we
were
thinking
about
it,
but
but
basically,
as
you
can
see,
most
users
are
actually
most
of
the
neighbors
that
you
have
here
are
actually
secret
and
when
you
clone
a
project,
you
won't
clone
the
settings.
A
B
A
Have
like
I
would
say:
palmatives,
maybe
not
not
not
secrets,
you
don't
want
to
see
like
password
here,
but
the
password
exists
and
then
it's
the
setting,
and
so
that's
that's
the
yaml
and
cicd
setting
and
schedule
pipeline.
When
you
go
to
schedule
go
to
schedule,
you
do
like
a
new
schedule.
A
You
can
add
variables
to
a
pipeline.
Okay,
then
you,
you
do
some
scheduling,
so
you
can
schedule
the
way
like
one
of
the
ways
to
inject
variable
is
through
schedule,
but
it
also
put
the
UI
and,
as
you
can
see,
we
don't
have
all
those
checkbooks
that
we
have.
That
previously
show
you
like.
Can
you
expand
it?
Can
you
protect
it?
A
A
So
when
I
go
to
Pipelines,
actually
every
time
that
I
do
like
on
Pipeline
manually,
okay
I
can
inject
I
can
eject
variables,
okay,
so
and
when
I'm
running
that
pipeline,
this
variable
will
be
created,
be
attached
to
the
will
be
injected
to
the
pipeline.
It's
very
popular
I
would
say
that
the
Run
pipeline
is
very
popular
when
you
want
to
like
manually,
run
pipelines,
for
instance,
for
deployment,
and
then
you
want
to
add
your
keys
to
deploy
your
your
targets.
A
I
would
say,
instance,
and
the
environment
that
you
want
to
deploy
and
so
like
running
like
a
manual
thing
that
you
need
to
configure
now,
you
want
to
run
like
Pipeline
on
staging,
but
then
you
want
to
run
the
same
pipeline
now
on
production
of
it.
So
normally
this
is
where
users
are
doing,
and
here
we
also
have
like
a
feature,
a
new
feature,
which
is
the
preferred
variable.
A
This
is
a
setting
that
you
configure
in
the
in
the
yaml,
where
you
actually
see
that
there
is
like
a
pre-filled
variable,
so
this
variable
appears
with
this
value
and
this
variable
appeals
with
this
drop
down.
So
all
of
this
is
actually
configurable
in
in
in
in
I.
Can
I
can
show
you
how
to
configure
it?
It's
not
like
a
it's,
not
like
a
pixels.
You
can
you
actually
configure
like
the,
and
you
can
also
configure
the
the
description.
Okay,
you
do
that
you
do
everything
in
the
in
the
oven.
A
Yeah
I
want
to
say
another
thing
on
that
yeah
again,
this
is
okay,
so
so
the
use
case
will
then
is
actually
like.
A
A
This
is
pretty
much
the
same
that
to
what
I've
showed
you,
but
if
what
I've
showed
you
is
on
Pipeline,
this
is
for
jobs
for
individual
jobs
and
I.
Think
I've
showed
you
that
this
is
before.
Maybe
we
can
try
finding
like
one
one
manual
job,
but
basically
it
is
also
a
very
popular
feature
that
we
implement.
We
implemented
those
two
features
almost
together
simultaneously
and
but
now
there
is
a
there
is
an
ask
to
extend
it
to
all
jobs,
because
right
now
only
manual
jobs,
okay,.
B
A
Talked
about
that,
it
will
have
time
remind
me
we
can.
Maybe,
if
you
just
look
for
like
a
manual
job
you'll,
be
able
to
sleep,
they
want
to
extend
it
to
all
jobs,
not
only
manual
API,
so
there
are
like,
if
you
go
to
outbox.
B
A
A
The
variable
delete
the
variable
so
they'll
handful
of
ways
to
do
all
some
of
those
actions
with
variables
in
the
API
and
they're,
always
like
more
more
requirements
for
for
basically
everything
that,
in
everything
that
you
can
do
through
the
UI,
there's
probably
like
an
us
to
do
it
from
there
from
the
API
I
would
actually
consider
that
whenever
you,
if
you
decide
to
add
like
I,
don't
know
like
a
new,
a
new
functionality
to
to
the
valuable
think
about
an
API
first
and
and
then
and
then
do
the
UI,
because
it
would
be
just
it
would
be
simpler.
A
Sometimes
it
would
be,
will
be
the
shortest
pass
to
to
success.
So
you
can
have
like
something.
Do
you
say
to
yourself?
Okay,
you
could
use
an
API
for
now
and
then
we
can
think
about
the
UI,
because
just
the
UI
takes
it
takes
more
part.
Okay
and
Mass
valuable
will
discuss
that
from
the
cicd
settings
and
we
want
to
extend
it
to
like
hide
the
variables.
So
users
won't
be
able
to
reveal
the
value
protected
variables.
We
also
discussed
and.
A
That
are
alarming,
only
a
protected
Branch.
This
is
like
the
checkbox
passing
valuable
to
a
downstream
pipeline.
That's
a
that's.
I
think
that
we
have
an
epic
for
that
and.
A
B
A
A
So
if
we
take
like
a
very
typical,
very
simple
scenario,
where
we
are
adding
like
a
variable
with
the
name
of
bar
one
with
the
value
of
hello
at
the
top
level,
okay,
and
then
we
have
several
jobs,
the
host
clip.
A
A
It
feels
that
you
consider
that
before
script
is
necessed
underneath
before
so
everything
that
is
nestled
underneath
the
fault
gets
like
behind
the
scene
actually
gets
copy
into
into
all
the
jobs.
So
this
gets
copy
here
and
in
here
volleyball
is
the
same
with
developers.
So
actually,
if
we
had
like,
we
were
thinking
about
a
better
design,
this
section
would
would
need
to
Nest
underneath
the
default
keyword,
okay,
but
it's
not
and,
as
you
can
see
like
the
result,
is
that,
like,
like
variables,
also
get
copy
underneath
each
job?
A
So
it's
a
lot
of
confusion,
because
it's
in
the
top
level,
when
people
think
that,
what's
ever
in
the
top
level,
doesn't
get
merged
into
like
all
all
get
copied
into
each
job,
and-
and
this
is
how
okay,
so
this
is
the
political
future
that
I
don't
think
it's
like
really
a
problem
now,
because,
basically
maybe
it
is
a
problem
because
variable
that
I
just
showed
you
in
the
Run
pipeline.
You
also
Define
it
as
a
top
level
keyword
the
variable,
my
vowel,
but
you
also
need
to
specify
a
value
and
then
a
description.
A
Okay,
so
you
have
like
features.
Okay,
one
is
the
yaml
variable
it
could
copy
into
each
job,
and
one
is
the
prefill
variable
that
we
just
covered
that
you
can
see
in
the
Run
Pipeline
and
both
of
them.
Those
syntax
is
very,
very
similar.
Okay,
so
very
similar-
and
this
is
the
this
is
the
this
is
those
two
lines
are
the
difference
now
we
have
like
now
we
have
even
more
it's.
We
have
more
things
to.
We
have
more
more
ways
to
configure
it
using
the.
A
A
So
this
is
how
it's
completed.
Okay,
so
you
have
like
the
viable
top
level
keyword
and
then
you
have
the
name.
Then
you
have
the
value
and
description.
The
value
here
is
empty.
If
you
remember,
environment
was
empty
and
there
was
another
keyword,
another
variable
with
this
value
and
that
description
just
open
it
side
by
side.
So
it
will
be
easier
for.
A
See
so
you
can
see
we
have
like
environment
no
value
of
this
description,
it's
here,
environment,
no
value.
This
is
the
description,
and
then
you
have
the
app
that
this
value,
this
description
and
you
can
see
it
here.
Okay,
that's
the
second
way
do
that
failed
way,
and
this
is
the
name
of
the
variable.
This
is
the
value
and
those
are
the
options.
A
Okay,
which
is
exactly
what
you
see
here.
Okay,
those
are
the
options
like
staging
online
and
production
appeals
here.
So
on
top
of
that,
you
have
a
way
to
define
the
variable
like
this.
So
it's
it's
a
bit
confusing
like.
Ideally,
we
feel
valuable
would
get
used
by
a
different
keyword
and
not
the
same
keyword
as
we
defined
like
the
yaml
variables.
So
it's
basically
different
features
and
we
Define
it
with
the
same
top
level
keyword
but
different
sub
keywords,
which
is
a
bit
confusing
right
now,
I
think
it's
it's
like.
A
B
B
No
I'm
just
like
thinking
about
it.
It
feels
a
little
bit
like.
B
See
we
have
like
overloaded
functions
where,
like
you,
can
either
take
it
like
one
or
you
could
take
like
four
different
info
parameters,
and
this
just
kind
of
like
reminds
me
of
of
that
right,
like
you,
can
have
variables
in
the
yaml
file.
Let's
define
one
way
and
then
you
have
the
predefined
ones,
but
they
all
use
variables.
I.
A
We
are
just
like
over
complicating
like
adding
additional
features
like
over
complicating,
and
we
kind
of
think
thinking
that
we
need
to
like
similar
to
how
we
do
like
refactoring
like
Engineers.
How
do
they
factor
into
the
code?
We
need
to
do
refactoring
for
this
feature,
and
I
would
have
to
say
that
we
are
doing
that
with
with
inputs,
which
is
something
that
a
pipeline
authoring
is
working
on.
A
We
can
also
discuss
this
a
little
bit
so
and
I
think
that
we'll
see
more
users
that
are
using
that
will
move
from
variables
to
inputs
in
some
scenarios,
but
still
variables
will
be,
will
still
be
very
popular
and
I.
Don't
think
the
idea
is
to
clone
all
the
features
that
we
have
for
variables.
Do
it
called
inputs,
because,
basically
we
will
just
we
will
we'll
do
the
same.
We
learn
to
do
the
same
challenges
that
we
have
today,
so
we
we
need
to
I.
A
Think
we
need
to
distinction,
distinguish
between
the
different
scenarios,
for
instance
when
users
are
using.
This
is
why
Secrets,
by
the
way,
is
super
important
to
separate,
because
now
users
are
mixing
volleyballs
with
secrets
with
predefined
variables
and
I.
Think
that
start
starting
to
separate
that
into
separate
buckets
and
say:
okay
secrets
are
actually
secrets
and
I
know
the
variables,
for
instance,
if
we
had
it
from
day
one
we
probably
won't
have
like
mask
variables.
We
won't
have
maybe
protected
variables.
A
We
won't
have
a
even
the
the
height
variables
that
we
want
to
that.
We
want
to
introduce,
so
all
of
that
functionality
will
probably
probably
wouldn't
need
that
we
just
say:
okay,
like
a
secret
variable
of
a
secret,
is
you
can
say
that
it's
like
a
variable?
But
you
say
it's
a
secret
and
it's
it's
must
by
default.
It
is
protected
by
these
people.
It
is
all
by
default
because,
like
a
mask
like
a
mask,
variable
or
Secret
is
actually
the
key,
so
it
does
not
reference
to
another.
A
So
there
are
like
many
I,
think
we.
We
really
need
to
think
about
separating
the
scenarios
and
use
cases
and
understand
when
users
are
using
even
pre-filled
variables.
We
can
maybe
think
about
when
users
are
using
paper,
so
maybe
take
it.
It's
a
different
is.
B
A
The
I
think
the
third
and
the
biggest
problem
that
we
have
with
Barbers
is
then
is
that
when
we
are
passing
variables
to
a
downstream
pipeline,
okay,
we
have
and
again
also
here
we,
we
established
some
sort
of
a
design
on
how
to
pass
variable,
and
then
users
start
asking
okay
I
want
to
pass
this
variable,
but
I
want
to
block
that
variable
and
I
want
to
and
I
want
to
pass
like
variable
expansion
and
I,
don't
and
in
this
section,
I
don't
want
to
pass
variable
expansion.
A
So
there
were
like
a
lot
of
a
lot
of
ask
on
that,
and
this
is
where
we
also
also
feels
like
that.
We
overloaded
this
this
functionality
basically
and
the
way
to
trigger
a
downstream
pipeline
using
the
trigger
keyword.
Okay.
So
when
you
do
a
job
and
you
add
the
trigger,
then
it
actually
triggers
another
Pipeline
and
there
is
like
there
is
also
like
trigger
include,
which
is
like
multi-project,
Pipeline
and
Trigger,
which
is
a
parent
child.
A
And
so,
if
I'm
in
my
my
deadline-
and
this
understand
pipeline
echoing
this
variable
here,
which
actually
is
not
defined
anywhere
here,
it
is
it
we.
It
was
inherited
from
the
Upstream
variable
and
then
we
will
see
the
value
hello,
which
is
I.
Think
it's
fine
because,
like
you
explicitly
mentioned
that
you
want
to
pass
this
variable,
but
if
you
remember,
when
you
define
a
top
level
variable:
okay,
okay,
we
are
actually
copying
this
section,
this
part
under
each
job.
A
It
means
that
if
you
have
like
some
sort
of
a
job
that
is
triggering
a
downstream
pipeline
in
reality,
what
happened
is
that
this
configuration
is
actually
turns
into
that
configuration
this
section.
This
is
this.
This
gets
copied
into
the
into
into
the
trigger
job,
which
means
that
any
variable
that
you're
defined
in
a
top
level
on
your
pipeline
will
get
copied
into
any
Downstream
pipeline,
and
that's
one
of
the
biggest
problems
that
we
have
because,
like
when
users
are
looking
at.
A
Start
starting
to
debug
the
pipeline
and
try
to
understand
why
a
variable
has
this
value
and
not
another
value.
So,
for
instance,
they
look
at
the
trigger
job
and
they
don't
see
any
variable
defined
here.
Okay,
there's
nothing
here,
because
this
actually
is
really
up
at
the
top
level.
So
maybe
this
could
be
like
the
deployed.
Job
can
be
like
I,
don't
know,
maybe
job
number
50.,
so
it's
very
very
like
maybe
it's
in
line
I,
don't
know
200
300
and
it's
impossible
for
you
to
okay,
I
need
to
know.
A
A
B
A
Finish
there
is
fish,
also
I,
see
okay
and
then
what
they
are
doing
they
are,
they
are
triggering
a
downstream
pipeline.
Okay,
they
are
clearing
a
downstream
Pipeline
and
they
are
defining
the
variables
that
they
want.
They
want
the
variable
to
to
get
passed
to
a
downstream
pipeline,
so
they
say:
okay,
the
the
viable
dog
with
the
with
the
value
of
wolf,
that's
transmitted
into
into
a
downstream
pipeline.
A
This
is
like
a
valuable
reference.
Okay,
so
this
is.
This
is
a
predefined
variable,
okay,
this
CI
underscore
so
so
they
are
saying
that
fish,
the
viable
fish
will
get
the
value
of
the
predefined
variable
and
Cat
will
get
the
value
of
the
cat.
The
value
of
the
cat
is
meow
and
tiger
will
get
the
value
of
tiger
and
where
tiger
Define
tiger
is
defined
here,
okay
and
basically,
what
they're
saying
is
in
the
downstream
so
pipeline,
we
are
just
echoing.
A
A
A
A
So
what
happened
is
that
a
tiger
with
the
name
wall
was
created
in
every
job,
but
also
a
tiger
with
the
value
of
tiger,
with
a
value
of
no
tiger
with
the
with
this
value
also
got
created,
but
it's
the
same
name.
So
what
happened
is
that
the
job
level
variable
overrides
this
variable?
Okay,
because
those
are
actually
the
same
variables
and
the
user.
He
thought
okay,
I'm,
defining
this
variable
somewhere
at
the
top
level.
A
There
is
like
a
precedence
like
who
who
is
more
important
than
what
so
the
job
level
takes
precedence
on
the
on
the
top
level
and
basically,
what
happened
is
that
this
and
this
this
this
value,
overwrited
and
if
they
would
actually
do
the
same,
if
they
will
actually
do
the
same
configuration
but
delete.
If
they
would
delete
this
line
completely,
then
this
thing
will
actually.
A
Basically,
but
this
is
not
like
what
they
wanted,
they
wanted.
Actually
they
wanted
the
variable
expansion
they
wanted,
like
they
have
valuable
electrons,
that's
what
they
want.
Okay
in
purpose.
This
is
what
they
want,
because
this
is
a
very
common
that
you
are
defining
a
variable,
and
then
you
want
someone
like
some
some
reference
to
to
a
variable.
You
don't
know
the
value
of
the
variable.
Sometimes
the
value
of
the
variable
gets
calculated
in
some
I.
A
This
is
just
like
one
example,
but
I
think
it's
really
Illustrated
the
problem
that
we
have
with
the
with
passing
Downstream
pipeline,
like
it's
not
a
bug,
but-
and
there
is
always
always
issues
like
that-
I
didn't
close
it
like
all
thoughts,
I
told
him.
It's
like
another
confusion
and
Pokemon
said
we
can
close
it
and
Market
the
duplicate.
I
didn't
close
it
because
I
think
it's
very,
very
nice
way
to
exemplify
one
of
the
problems
that
we
have
with
workers
yeah
and
with
that
said.
A
This
is
number
one,
and
the
second
thing
is
like
exposing
the
variable
I
think
it's
also
like
it
will
help
alleviate
some
of
the
problems
that
I
just
showed.
You
musers
always
ask
outcome.
This
variable
now
has
this
value,
although
I
did
set
the
value
to
be
something
else,
it's
very
hard
for
them
to
understand
why,
okay
and
but
if
we
will
expose
those
variables
in
the
UI,
okay
and
show
them
and
there's
the
design
that
vitica
moved
it
to
the
set
to
the
topic,
but
if
we
we
actually
show
them.
A
What
is
the
value
of
the
variable?
Then
at
least
at
least
some
of
the
confusion?
Will
we
alleviate
I'm
I'm,
hoping
okay,
and
so
this
is
why
I
think
it's?
It
would
be
nice
if
we'll
be
able
to
actually
Implement
that
and
long-term
goal.
A
We
need
to
think
about
they're
all
in
this
epic,
that
I
just
show
you
the
last
10
and
proposals
on
how
we
can
maybe
fix
some
of
the
problems
that
we
have
with
the
top
level
and
and
passing
variables
to
a
downstream
pipeline,
which
is
just
like
what
we've
discussed
and
okay.
So
this
is
also
an
epic
that
basically
explains
and
yeah
the
problem
with
passing
viable
to
a
downstream
pipeline.
A
A
There
is
the
cicd
settings,
the
non-valuable
pipeline
schedule,
pipeline
manual
manual
jobs,
so
there
are
like
four
ways
to
Define
variables
to
the
UI.
Maybe
it
makes
more
sense
to
define
the
variable
ones
and
then
and
then
pick
the
variable
that
you
want
to
use
in
those
different
areas
in
the
product.
It
needs
some
validation,
but
this
is
like
just
an
idea
that
we
had
around
unification
of
the
experience
because
it
doesn't
make
sense
to
have
it
like
at
least
I
would
say
that
the
cicd
said
things.
A
A
Why
do
you
need
to
do
that
over
and
over
again
from
different
areas
in
the
product?
So
this
is
just
like,
maybe
just
one
RDA
that
we
have
and
okay
and
I
would
say
one
thing
that
we
need
to
be
to
keep
in
mind.
There
are
always
there
is
always
ask
for
valuable
expansion,
valuable
expansion,
meaning
and,
let's
see.
B
A
Or
like,
for
example,
valve
and
expansion
in
needs,
okay
users
always
ask
in
different
keywords
to
support
viable
expansion.
Okay,
I
would
say
that
the
way
to
reference
available
is
with
the
dollar
sign,
but
not
all
of
our,
not
the
fault.
Not
all
of
our
keywords
support
that
okay.
So,
for
instance,
they
said
okay,
we
want
to
Define
like
a
variable
name
project
and
then,
with
the
needs
keyword
we
want
to
append.
A
The
problem
with
viable
expansion
is
that
each
each
key
needs
an
individual
implementation.
So
if
someone
wins
valuable
expansion,
he
needs.
This
is
one
issue.
If
someone
wants
valuable
extension
in
extend
it's
another
issue,
if
someone
want
viable
expansion,
doesn't
matter
okay,
we
have
some
keywords
that
we
did
enable
variable
expansion,
but
we
kind
of
like
realize
that
it's
not
scalable
right.
A
A
150
I,
don't
remember,
we
cannot
have
like.
We
cannot
like
every
time
that
we
introduce
a
new
keyword.
We
cannot
say:
okay
now,
let's
create
another
implementation
issue
to
support
valuable
expansion
and
so
to
mitigate
that.
This
is
the
work
that
we're
doing.
We
are
doing
this
with
inputs,
so
whenever
there
is
an
Ask,
whenever
you
see
an
ask
to
support
valuable
expansion
or
viable
interpolation
in
some
sort
of
a
field-
and
you
should
defer
them
to
the
to
the
inputs
that
you
are
doing
because
with
the
inputs,
we
can
expand.
A
Everything
like
in
a
single
time
like
we
don't
need
to
do
like
special
case
for
age
and
every
key,
and
so
it's
super
important
that
every
time
you
have
that
you
can
ping
me,
you
can
say.
Hey
here
is
like
another
issue
that
they
ask
for
variable:
expansion
use
inputs
instead,
I
think
in
like
most
cases
we
will
cover
that.
Maybe
there
are
like
some
special
cases
we
want,
but
in
most
cases
we'll
cover
that.
B
A
A
I
think
that,
like
I,
take
your
time
and
like
of
the
issues
as
they
come,
because
the
issues
will
always
come.
A
A
Anything
that
maybe
took
me
like
would
say
more
than
a
year,
even
more
than
that
to
almost
understand
every
Nuance
in
in
with
variables,
I'm
sure
there
are
things
that
I
didn't
wasn't
exposed
and
I'm
sure
there
are
things
that
that
I
forgot,
so
it
will
take
a
while
until
you
ramp
yourself
up
but
like
take
your
time
and
and
reach
out
every
time.
There
are
questions
on
variables.
B
A
Yes,
it's
it's
super
super
habitable
topic,
I
would
say,
I
think
again,
I
think
the
problem
is
that
we
took
variables
and
at
some
point
we
kind
of
like
try
to
solve
all
the
problems
that
we
have
today
with
variables,
for
instance,
secrets,
for
instance,
viable
expansion
preview.
Like
all
the
things
that
you
sell.
A
Like
all
those
features,
we
try
to
fix
everything
with
variables,
so
we
top
layers
and
layers
and
functionality,
but
I
think
that
with
inputs
and
the
work
that
we
are
doing
with
inputs,
I
think
this
could
be
like
this
could
bring
some
really
and
could
lift
some
of
the
weight
that
we
have
with
variables.
A
Not
all
I
would
say:
okay,
I,
think
that,
like
one
of
the
let's
like
expand
a
bit
beyond
like
viable
and
try
to
understand
like
one
of
the
keys
problems
that
the
variables-
because
it's
like,
if,
if
I
look
at
SAS,
for
instance,.
A
So
one
of
the
ways
that
users
information
to
to
a
template
or
any
includable
file,
is
through
a
variable
which
is
which
is
the
which
is
the
wrong
way.
I
would
say
to
do
that
here
is
an
example.
Okay,
like
you're,
saying,
okay,
you
can
include
your
SAS
functionality,
but
hey
like
if
you
want
to
tune
it.
If
you
want
to
do
something,
add
this
top
level
keyword
or
variable
with
this
value
in
this
field?
Okay-
and
this
is
how
users
are
tuning
template.
This
is
just
one
example.
A
They
are
doing
it
like
they're
doing
it
massively
like.
If
you
scroll
further
down
you'll,
see
that
there
is
just
like
one
example:
okay
here,
another
variable,
okay,
so
this
is
like
it's
like
a
setting.
Okay,
because
of
the
way
this
component,
it's
like
a
setting
that
you
can
add
to
your
template.
Basically,
it's
not
a
setting.
It's
it's
a
parameter
that
you
pass
to
a
template.
Okay,
so
variables
actually
became
a
parameter.
Passing
to
a
template
and
users
are
extensively
using
the
include
syntax,
so
they
are
always
breaking
down
templates
to
multiple
yaml
files.
A
Okay
and
then,
when
they
want
to
use
it
or
to
pass
inputs,
then
they
use
variables
and
they
use
many
times
they
are
using
it
with
the
with
the
global
keywords,
sometimes
nested,
within
a
job,
sometimes
at
the
top
level-
and
this
is
one
of
the
outside.
This
is
one
of
the
problems
that
we
have
with
our
designs.
A
We
didn't
intend
that
variable
will
be
used
for
that
purpose,
but,
as
you
see
now,
it's
officially
in
our
documentation,
this
is
the
this
is
probably
the
only
way
to
do
it
now,
and
users
are
doing
this
all
the
time
because
they
see.
This
is
how
we
do
that,
and
this
is
how
they
do
that,
and
this
is
this-
was
not
the
intention.
Okay,
the
intention
of
variable
is
you
know
if
you
have
something
that
you
want
to,
you
want
to
reuse
and
it's
like
Dynamic,
then
you
can.
A
You
can
use
that,
for
instance,
the
same
script
or
the
same
action
with
different
with
different
parameters.
Okay,
it's
not
for
passing
inputs,
okay,
but
this
is
how
we
do
it
and
I
think
that
now
with
I
think
with
now
with
inputs,
the
work
that
we're
doing
with
inputs,
I
think
in
many
cases
those
things
needs
to
needs
to
go
away.
Okay,
this
should
not
be
the
way
to
pass
parameters
into
templates.
We
should
do
that
using
inputs.
B
B
A
Cool
I
mean
again
I
think
like
as
I
mentioned,
like
you
can
refer
to
this
recording.
You
can
ask
me
if
you
have
questions,
ask
our
engineers
and
but
be
aware.
This
is
like
a
very,
very,
very
heavy
topic
that,
like
it's
like
a
massive
users
and
skull
base
that
are
behind
that,
so
it's
very
popular
functionality
that
we
have
in
our
product
and.
B
B
Do
you
have
any
pis
that
you're,
using
with
variables
like
do
you
have
any
okay,
so
I
need
to
come
up
with
the
pis?
Okay,
if.