diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js
index 1cb608cfb4..7aaf5f80b0 100644
--- a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js
+++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.js
@@ -29,6 +29,10 @@ function ContainerGroupAdd() {
try {
const { data: response } = await InstanceGroupsAPI.create({
name: values.name,
+ max_forks: values.max_forks ? values.max_forks : 0,
+ max_concurrent_jobs: values.max_concurrent_jobs
+ ? values.max_concurrent_jobs
+ : 0,
credential: values?.credential?.id,
pod_spec_override: values.override
? getPodSpecValue(values.pod_spec_override)
diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js
index aa91b9ef25..223381f7a4 100644
--- a/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js
+++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupAdd/ContainerGroupAdd.test.js
@@ -33,6 +33,8 @@ const initialPodSpec = {
const instanceGroupCreateData = {
name: 'Fuz',
credential: { id: 71, name: 'CG' },
+ max_concurrent_jobs: 0,
+ max_forks: 0,
pod_spec_override:
'apiVersion: v1\nkind: Pod\nmetadata:\n namespace: default\nspec:\n containers:\n - image: ansible/ansible-runner\n tty: true\n stdin: true\n imagePullPolicy: Always\n args:\n - sleep\n - infinity\n - test',
};
diff --git a/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js b/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js
index f7a90603f3..5ae579bc45 100644
--- a/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js
+++ b/awx/ui/src/screens/InstanceGroup/ContainerGroupDetails/ContainerGroupDetails.js
@@ -9,7 +9,12 @@ import AlertModal from 'components/AlertModal';
import ErrorDetail from 'components/ErrorDetail';
import { CardBody, CardActionsRow } from 'components/Card';
import DeleteButton from 'components/DeleteButton';
-import { Detail, DetailList, UserDateDetail } from 'components/DetailList';
+import {
+ Detail,
+ DetailList,
+ UserDateDetail,
+ DetailBadge,
+} from 'components/DetailList';
import useRequest, { useDismissableError } from 'hooks/useRequest';
import { jsonToYaml, isJsonString } from 'util/yaml';
import { InstanceGroupsAPI } from 'api';
@@ -47,6 +52,20 @@ function ContainerGroupDetails({ instanceGroup }) {
value={t`Container group`}
dataCy="container-group-type"
/>
+
+
{instanceGroup.summary_fields.credential && (
', () => {
...updatedInstanceGroup,
credential: 12,
pod_spec_override: null,
+ max_concurrent_jobs: 0,
+ max_forks: 0,
is_container_group: true,
});
expect(history.location.pathname).toEqual(
diff --git a/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js b/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js
index d40d49cd7c..68b73a7a98 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceDetails/InstanceDetails.test.js
@@ -42,6 +42,8 @@ const instanceGroup = {
credential: null,
policy_instance_percentage: 100,
policy_instance_minimum: 0,
+ max_concurrent_jobs: 0,
+ max_forks: 0,
policy_instance_list: ['receptor-1', 'receptor-2'],
pod_spec_override: '',
summary_fields: {
diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
index 6627081f57..13cc8c40ba 100644
--- a/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
+++ b/awx/ui/src/screens/InstanceGroup/InstanceGroupDetails/InstanceGroupDetails.js
@@ -73,6 +73,20 @@ function InstanceGroupDetails({ instanceGroup }) {
dataCy="instance-group-policy-instance-percentage"
content={`${instanceGroup.policy_instance_percentage} %`}
/>
+
+
{instanceGroup.capacity ? (
+
+
@@ -97,6 +117,8 @@ function ContainerGroupForm({
const initialValues = {
name: instanceGroup?.name || '',
+ max_concurrent_jobs: instanceGroup.max_concurrent_jobs || 0,
+ max_forks: instanceGroup.max_forks || 0,
credential: instanceGroup?.summary_fields?.credential,
pod_spec_override: isCheckboxChecked
? instanceGroup?.pod_spec_override
diff --git a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js
index a9e2d670f4..0e9396be24 100644
--- a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js
+++ b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js
@@ -42,6 +42,26 @@ function InstanceGroupFormFields() {
assigned to this group when new instances come online.`}
validate={minMaxValue(0, 100)}
/>
+
+
>
);
}
@@ -57,6 +77,8 @@ function InstanceGroupForm({
name: instanceGroup.name || '',
policy_instance_minimum: instanceGroup.policy_instance_minimum || 0,
policy_instance_percentage: instanceGroup.policy_instance_percentage || 0,
+ max_concurrent_jobs: instanceGroup.max_concurrent_jobs || 0,
+ max_forks: instanceGroup.max_forks || 0,
};
return (