Type
{
return (
-
+
{keyOptions.length > 0 && (
)}
{keyOptions.length === 0 && (
@@ -326,7 +320,6 @@ const Affinity = ({
}}
index={i}
placeholder={"Key"}
- classes={classes.fieldContainer}
/>
)}
@@ -352,7 +345,6 @@ const Affinity = ({
})
: []
}
- classes={classes.fieldContainer}
/>
)}
{keyOptions.length === 0 && (
@@ -371,7 +363,6 @@ const Affinity = ({
}}
index={i}
placeholder={"value"}
- classes={classes.fieldContainer}
/>
)}
@@ -423,18 +414,22 @@ const Affinity = ({
);
};
-const mapState = (state: AppState) => ({
- podAffinity: state.tenants.createTenant.fields.affinity.podAffinity,
- nodeSelectorLabels:
- state.tenants.createTenant.fields.affinity.nodeSelectorLabels,
- withPodAntiAffinity:
- state.tenants.createTenant.fields.affinity.withPodAntiAffinity,
-});
+const mapState = (state: AppState) => {
+ const createTenant = state.tenants.createTenant;
+
+ return {
+ podAffinity: createTenant.fields.affinity.podAffinity,
+ nodeSelectorLabels: createTenant.fields.affinity.nodeSelectorLabels,
+ withPodAntiAffinity: createTenant.fields.affinity.withPodAntiAffinity,
+ keyValuePairs: createTenant.nodeSelectorPairs,
+ };
+};
const connector = connect(mapState, {
setModalErrorSnackMessage,
updateAddField,
isPageValid,
+ setKeyValuePairs,
});
export default withStyles(styles)(connector(Affinity));
diff --git a/portal-ui/src/screens/Console/Tenants/actions.ts b/portal-ui/src/screens/Console/Tenants/actions.ts
index 017599b99..7307c5a44 100644
--- a/portal-ui/src/screens/Console/Tenants/actions.ts
+++ b/portal-ui/src/screens/Console/Tenants/actions.ts
@@ -42,6 +42,8 @@ import {
TENANT_DETAILS_SET_LOADING,
TENANT_DETAILS_SET_TAB,
TENANT_DETAILS_SET_TENANT,
+ ADD_TENANT_SET_KEY_PAIR_VALUE,
+ LabelKeyPair,
} from "./types";
// Basic actions
@@ -277,3 +279,10 @@ export const setTenantTab = (tab: string) => {
tab,
};
};
+
+export const setKeyValuePairs = (newArray: LabelKeyPair[]) => {
+ return {
+ type: ADD_TENANT_SET_KEY_PAIR_VALUE,
+ newArray,
+ };
+};
diff --git a/portal-ui/src/screens/Console/Tenants/reducer.ts b/portal-ui/src/screens/Console/Tenants/reducer.ts
index 3dd0a97d8..a60b4b964 100644
--- a/portal-ui/src/screens/Console/Tenants/reducer.ts
+++ b/portal-ui/src/screens/Console/Tenants/reducer.ts
@@ -33,6 +33,7 @@ import {
ADD_TENANT_ENCRYPTION_VAULT_CERT,
ADD_TENANT_RESET_FORM,
ADD_TENANT_SET_CURRENT_PAGE,
+ ADD_TENANT_SET_KEY_PAIR_VALUE,
ADD_TENANT_SET_LIMIT_SIZE,
ADD_TENANT_SET_PAGE_VALID,
ADD_TENANT_SET_STORAGE_CLASSES_LIST,
@@ -332,6 +333,7 @@ const initialState: ITenantState = {
encoded_cert: "",
},
},
+ nodeSelectorPairs: [{ key: "", value: "" }],
},
tenantDetails: {
currentTenant: "",
@@ -883,6 +885,15 @@ export function tenantsReducer(
encoded_cert: "",
},
},
+ nodeSelectorPairs: [{ key: "", value: "" }],
+ },
+ };
+ case ADD_TENANT_SET_KEY_PAIR_VALUE:
+ return {
+ ...state,
+ createTenant: {
+ ...state.createTenant,
+ nodeSelectorPairs: action.newArray,
},
};
case TENANT_DETAILS_SET_LOADING:
diff --git a/portal-ui/src/screens/Console/Tenants/types.ts b/portal-ui/src/screens/Console/Tenants/types.ts
index 2f8fce72b..65e6329c1 100644
--- a/portal-ui/src/screens/Console/Tenants/types.ts
+++ b/portal-ui/src/screens/Console/Tenants/types.ts
@@ -20,7 +20,6 @@ import { KeyPair, Opts } from "./ListTenants/utils";
import { IntegrationConfiguration } from "./AddTenant/Steps/TenantResources/utils";
export const ADD_TENANT_SET_CURRENT_PAGE = "ADD_TENANT/SET_CURRENT_PAGE";
-export const ADD_TENANT_SET_ADVANCED_MODE = "ADD_TENANT/SET_ADVANCED_MODE";
export const ADD_TENANT_UPDATE_FIELD = "ADD_TENANT/UPDATE_FIELD";
export const ADD_TENANT_SET_PAGE_VALID = "ADD_TENANT/SET_PAGE_VALID";
export const ADD_TENANT_RESET_FORM = "ADD_TENANT/RESET_FORM";
@@ -59,6 +58,9 @@ export const ADD_TENANT_ENCRYPTION_VAULT_CA = "ADD_TENANT/ENCRYPTION_VAULT_CA";
export const ADD_TENANT_ENCRYPTION_GEMALTO_CA =
"ADD_TENANT/ENCRYPTION_GEMALTO_CA";
+// Affinity Node Selector KeyPairs
+export const ADD_TENANT_SET_KEY_PAIR_VALUE = "ADD_TENANT/SET_KEY_PAIR_VALUE";
+
// Tenant Details
export const TENANT_DETAILS_SET_LOADING = "TENANT_DETAILS/SET_LOADING";
export const TENANT_DETAILS_SET_CURRENT_TENANT =
@@ -92,6 +94,7 @@ export interface ICreateTenant {
limitSize: any;
fields: IFieldStore;
certificates: ICertificatesItems;
+ nodeSelectorPairs: LabelKeyPair[];
}
export interface ICertificatesItems {
@@ -123,6 +126,11 @@ export interface INameTenantFields {
selectedStorageType: string;
}
+export interface LabelKeyPair {
+ key: string;
+ value: string;
+}
+
export interface ISecurityContext {
runAsUser: string;
runAsGroup: string;
@@ -422,6 +430,11 @@ interface ResetForm {
type: typeof ADD_TENANT_RESET_FORM;
}
+interface SetNodeSelectorKeyPairValueArray {
+ type: typeof ADD_TENANT_SET_KEY_PAIR_VALUE;
+ newArray: LabelKeyPair[];
+}
+
interface SetLoadingTenant {
type: typeof TENANT_DETAILS_SET_LOADING;
state: boolean;
@@ -467,6 +480,7 @@ export type TenantsManagementTypes =
| AddFileVaultCa
| AddFileGemaltoCa
| ResetForm
+ | SetNodeSelectorKeyPairValueArray
| SetLoadingTenant
| SetTenantName
| SetTenantDetails