<commit_before>\begin{ManPage}{\label{man-condor-annex}\Condor{annex}}{1}
{Add cloud resources to the pool.}
\index{HTCondor commands!condor\_annex}
\index{condor\_annex command}

\Synopsis

\SynProg{\Condor{annex}} \Opt{-help}

\SynProg{\Condor{annex}} \OptArg{-setup}{[path/to/access/key/file [path/to/secret/key/file]]}

\SynProg{\Condor{annex}} \oOpt{-aws-on-demand}
  \OptArg{-annex-name}{name of the annex}
  \OptArg{-count}{integer number of instances}
  \oOpt{-aws-on-demand-*}
  \oOpt{common options}

\SynProg{\Condor{annex}} \oOpt{-aws-spot-fleet}
  \OptArg{-annex-name}{name of the annex}
  \OptArg{-slots}{integer weight}
  \oOpt{-aws-spot-fleet-*}
  \oOpt{common options}

\Description

\condor{annex} adds clouds resources to the pool.  (``The pool'' is determined
in the usual manner for HTCondor daemons and tools.)  Version 8.7.1 supports
only Amazon Web Services (`AWS').  To use ``on-demand'' instances, use
the third form above; to use ``spot'' instances, use the fourth.  For an
explanation of terms, consult either the HTCondor manual
(chapter \ref{cloud-computing}) or the AWS documentation.

Common options are listed first, followed by options specific to AWS,
followed by options specific to AWS' on-demand instances, followed by
options specific to AWS' spot instances, followed by options intended
for use by experts.

Using \Condor{annex} with AWS requires a one-time setup procedure
performed by invoking \Condor{annex} with the \Opt{-setup} flag.

\begin{Options}
%% COMMON OPTIONS
	\OptItem {\Opt{-help}}
		{Print a usage reminder.}

	\OptItem {\OptArg{-setup}{[path/to/access/key/file [path/to/secret/key/file]]}}
		{Do the first-time setup.}

	\OptItem {\OptArg{-duration}{hours}}
		{Set the maximum lease duration in decimal \Arg{hours}.  After this amount of time, all instances will terminated, regardless of their idleness.}
	\OptItem {\OptArg{-idle}{hours}}
		{Set the maximum idle duration in decimal \Arg{hours}.  An instance idle for longer than this duration will terminate itself. }
	\OptItem {\OptArg{-config-dir}{/full/path/to/directory}}
		{Copy the contents of \Arg{/full/path/to/directory} to each instance's config directory.}
	\OptItem {\OptArg{-owner}{owner[, owner]*}}
		{Configure the annex so that only \Arg{owner} may start jobs there.}
	\OptItem {\Opt{-no-owner}}
		{Configure the annex sot that anyone in the pool may use the annex.}

%% AWS-SPECIFIC OPTIONS
	\OptItem {\OptArg{-aws-user-data}{user-data}}
		{Set the instance user data to \Arg{user-data}.}
	\OptItem {\OptArg{-aws-user-data-file}{path/to/file}}
		{Set the instance user data to the contents of the file \Arg{path/to/file}.}
	\OptItem {\OptArg{-aws-default-user-data}{user-data}}
		{Set the instance user data to \Arg{user-data}, if it's not already set.  Only applies to spot fleet requests.}
	\OptItem {\OptArg{-aws-default-user-data-file}{path/to/file}}
		{Set the instance user data to the contents of the file \Arg{path/to/file}, if it's not already set.  Only applies to spot fleet requests.}

%% AWS ON-DEMAND OPTIONS
	\OptItem {\OptArg{-aws-on-demand-instance-type}{instance-type}}
		{This annex will requests instances of type \Arg{instance-type}.}
	\OptItem {\OptArg{-aws-on-demand-ami-id}{ami-id}}
		{This annex will start instances of the AMI \Arg{ami-id}.}
	\OptItem {\OptArg{-aws-on-demand-security-group-ids}{group-id[,group-id]}}
		{This annex will start instances with the listed security group IDs.}
	\OptItem {\OptArg{-aws-on-demand-key-name}{key-name}}
		{This annex will start instances with the key pair named \Arg{key-name}.}

%% AWS SPOT FLEET OPTIONS
	\OptItem {\OptArg{-aws-spot-fleet-config-file}{/full/path/to/file}}
		{Use the JSON blob in \Arg{/full/path/to/file} for the spot fleet request.}

%% AWS EXPERTS' OPTIONS
	\OptItem {\OptArg{-aws-access-key-file}{path/to/access-key-file}} {Experts only.}
	\OptItem {\OptArg{-aws-secret-key-file}{path/to/secret-key-file}} {Experts only.}
	\OptItem {\OptArg{-aws-ec2-url}{https://ec2.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-events-url}{https://events.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-lambda-url}{https://lambda.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-s3-url}{https://s3.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-spot-fleet-lease-function-arn}{sfr-lease-function-arn}} {Developers only.}
	\OptItem {\OptArg{-aws-on-demand-lease-function-arn}{odi-lease-function-arn}} {Developers only.}
	\OptItem {\OptArg{-aws-on-demand-instance-profile-arn}{instance-profile-arn}} {Developers only.}
\end{Options}

\GenRem

...

\Examples

...

\ExitStatus

\Condor{annex} will exit with a status value of 0 (zero) on success.

\end{ManPage}<commit_msg>(#6218)  Approximately finish the condor_annex man page.<commit_after>\begin{ManPage}{\label{man-condor-annex}\Condor{annex}}{1}
{Add cloud resources to the pool.}
\index{HTCondor commands!condor\_annex}
\index{condor\_annex command}

\Synopsis

\SynProg{\Condor{annex}} \Opt{-help}

\SynProg{\Condor{annex}} \OptArg{-setup}{[path/to/access/key/file [path/to/secret/key/file]]}

\SynProg{\Condor{annex}} \oOpt{-aws-on-demand}
  \OptArg{-annex-name}{name of the annex}
  \OptArg{-count}{integer number of instances}
  \oOpt{-aws-on-demand-*}
  \oOpt{common options}

\SynProg{\Condor{annex}} \oOpt{-aws-spot-fleet}
  \OptArg{-annex-name}{name of the annex}
  \OptArg{-slots}{integer weight}
  \oOpt{-aws-spot-fleet-*}
  \oOpt{common options}

\Description

\condor{annex} adds clouds resources to the pool.  (``The pool'' is determined
in the usual manner for HTCondor daemons and tools.)  Version 8.7.1 supports
only Amazon Web Services (`AWS').  To use ``on-demand'' instances, use
the third form above; to use ``spot'' instances, use the fourth.  For an
explanation of terms, consult either the HTCondor manual
(chapter \ref{cloud-computing}) or the AWS documentation.

Common options are listed first, followed by options specific to AWS,
followed by options specific to AWS' on-demand instances, followed by
options specific to AWS' spot instances, followed by options intended
for use by experts.

Using \Condor{annex} with AWS requires a one-time setup procedure
performed by invoking \Condor{annex} with the \Opt{-setup} flag.

\begin{Options}
%% COMMON OPTIONS
	\OptItem {\Opt{-help}}
		{Print a usage reminder.}

	\OptItem {\OptArg{-setup}{[path/to/access/key/file [path/to/secret/key/file]]}}
		{Do the first-time setup.}

	\OptItem {\OptArg{-duration}{hours}}
		{Set the maximum lease duration in decimal \Arg{hours}.  After this amount of time, all instances will terminated, regardless of their idleness.}
	\OptItem {\OptArg{-idle}{hours}}
		{Set the maximum idle duration in decimal \Arg{hours}.  An instance idle for longer than this duration will terminate itself. }
	\OptItem {\OptArg{-config-dir}{/full/path/to/directory}}
		{Copy the contents of \Arg{/full/path/to/directory} to each instance's config directory.}
	\OptItem {\OptArg{-owner}{owner[, owner]*}}
		{Configure the annex so that only \Arg{owner} may start jobs there.}
	\OptItem {\Opt{-no-owner}}
		{Configure the annex sot that anyone in the pool may use the annex.}

%% AWS-SPECIFIC OPTIONS
	\OptItem {\OptArg{-aws-user-data}{user-data}}
		{Set the instance user data to \Arg{user-data}.}
	\OptItem {\OptArg{-aws-user-data-file}{path/to/file}}
		{Set the instance user data to the contents of the file \Arg{path/to/file}.}
	\OptItem {\OptArg{-aws-default-user-data}{user-data}}
		{Set the instance user data to \Arg{user-data}, if it's not already set.  Only applies to spot fleet requests.}
	\OptItem {\OptArg{-aws-default-user-data-file}{path/to/file}}
		{Set the instance user data to the contents of the file \Arg{path/to/file}, if it's not already set.  Only applies to spot fleet requests.}

%% AWS ON-DEMAND OPTIONS
	\OptItem {\OptArg{-aws-on-demand-instance-type}{instance-type}}
		{This annex will requests instances of type \Arg{instance-type}.}
	\OptItem {\OptArg{-aws-on-demand-ami-id}{ami-id}}
		{This annex will start instances of the AMI \Arg{ami-id}.}
	\OptItem {\OptArg{-aws-on-demand-security-group-ids}{group-id[,group-id]}}
		{This annex will start instances with the listed security group IDs.}
	\OptItem {\OptArg{-aws-on-demand-key-name}{key-name}}
		{This annex will start instances with the key pair named \Arg{key-name}.}

%% AWS SPOT FLEET OPTIONS
	\OptItem {\OptArg{-aws-spot-fleet-config-file}{/full/path/to/file}}
		{Use the JSON blob in \Arg{/full/path/to/file} for the spot fleet request.}

%% AWS EXPERTS' OPTIONS
	\OptItem {\OptArg{-aws-access-key-file}{path/to/access-key-file}} {Experts only.}
	\OptItem {\OptArg{-aws-secret-key-file}{path/to/secret-key-file}} {Experts only.}
	\OptItem {\OptArg{-aws-ec2-url}{https://ec2.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-events-url}{https://events.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-lambda-url}{https://lambda.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-s3-url}{https://s3.<region>.amazonaws.com}} {Experts only.}
	\OptItem {\OptArg{-aws-spot-fleet-lease-function-arn}{sfr-lease-function-arn}} {Developers only.}
	\OptItem {\OptArg{-aws-on-demand-lease-function-arn}{odi-lease-function-arn}} {Developers only.}
	\OptItem {\OptArg{-aws-on-demand-instance-profile-arn}{instance-profile-arn}} {Developers only.}
\end{Options}

\GenRem

As of v8.7.1, only AWS is supported.  The AMI configured by setup runs
HTCondor v8.6.0 on Amazon Linux 2016.09, and the default instance type
is ``m4.large''.  The default AMI has the appropriate software for AWS'
``p2'' family of GPU instance types.

\Examples

To start an on-demand annex named `MyFirstAnnex' with one core,
using the default AMI and instance type, run

\begin{verbatim}
  condor_annex -count 1 -annex-name MyFirstAnnex
\end{verbatim}

You will be asked to confirm that the defaults are what you want.

As of 2017-04-17, the following example will cost a minimum of \$90.

To start an on-demand annex with 100 GPUs that job owners `big' and `little'
may use (be sure to include yourself!), run

\begin{verbatim}
  condor_annex -count 100 -annex-name MySecondAnnex \
    -aws-on-demand-instance-type p2.xlarge -owner "big, little"
\end{verbatim}

\ExitStatus

\Condor{annex} will exit with a status value of 0 (zero) on success.

\end{ManPage}
{'fraction_non_alphanumeric': 0.1502555694859678, 'fraction_numerical': 0.005207831034815315, 'mean_word_length': 4.159203980099503, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6014117', 'n_tokens_mistral': 3637, 'n_tokens_neox': 3455, 'n_words': 1026}