Out Plane
ip-profile

ip-profile create

Create an IP access profile.

writes--dry-run

Creates a profile from a list of networks. Each rule is a CIDR, optionally with a note saying what it is.

Creating changes nothing that is running. ip-profile assign is what applies it, and that takes effect at once.

Usage

outplane ip-profile create <NAME> [flags]

Arguments

ArgumentTypeDescription
NAMEstringWhat to call the profile. Required.

Flags

FlagTypeDescription
--rulestringsCIDR[=description], repeatable. Each one is an allow rule. Repeatable.
--descriptionstringWhat the profile is for.

The global flags apply as well.

Output

FieldTypeDescription
idstring
namestring
descriptionstring | null
rulesintHow many networks it allows.
assignmentsintHow many applications use it.
ruleListarrayThe networks themselves, {cidr, description}. Sorted, and JSON only.
assignedAppsarrayThe applications using it, {id, app, appId}. id is the assignment's own id, which is what detaching needs.
createdAtstring | nullRFC 3339, UTC.
changedboolFalse for a dry run.

Examples

Allow one office network

outplane ip-profile create office --rule 203.0.113.0/24=head office

Several networks at once

outplane ip-profile create office --rule 203.0.113.0/24 --rule 198.51.100.7/32=vpn

Check the rules would be accepted, without creating anything

outplane ip-profile create office --rule 203.0.113.0/24 --dry-run --json
{
  "changed": false,
  "name": "office",
  "rules": 1
}

What to Know

  • A profile with no rules is accepted and allows nothing. Assigned to an application, it makes that application reachable from nowhere. --rule "" on its own is how to ask for that, the same way an empty value clears a build filter.
  • A bare address is refused with ipprofile.cidr_invalid rather than being read as a /32, because guessing a prefix length is guessing how much of a network to let in.
  • Creating changes nothing that is running. ip-profile assign is what applies it, and it applies immediately rather than at the next deployment.
  • The same name twice is refused by the server, so this is not idempotent.

Errors

Beyond 0 for success, this command exits with:

ExitKindMeaning
2usageInvalid arguments, unknown flag, or client-side validation failure.
3authNot authenticated, token revoked or expired, or forbidden for this team.
6conflictThe resource already exists, or a concurrent change won.
8upstreamThe Out Plane API returned a server error.

The code on the error object is one of ipprofile.name_required, ipprofile.name_invalid, ipprofile.description_invalid, ipprofile.cidr_required, ipprofile.cidr_invalid, ipprofile.rule_duplicate, usage.missing_argument, context.no_team. Branch on that, or on the exit status. The message is prose and changes.

On this page