@spinnaker/oracle 0.0.0-main-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +868 -0
- package/LICENSE.txt +203 -0
- package/dist/common/footer.component.d.ts +2 -0
- package/dist/domain/IOracleLoadBalancer.d.ts +114 -0
- package/dist/helpContents/oracleHelpContents.d.ts +1 -0
- package/dist/image/image.reader.d.ts +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3634 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/details/instance.details.controller.d.ts +2 -0
- package/dist/loadBalancer/configure/createLoadBalancer.controller.d.ts +87 -0
- package/dist/loadBalancer/details/loadBalancerDetail.controller.d.ts +21 -0
- package/dist/loadBalancer/loadBalancer.transformer.d.ts +12 -0
- package/dist/oracle.module.d.ts +2 -0
- package/dist/oracle.settings.d.ts +15 -0
- package/dist/pipeline/stages/bake/bakeExecutionDetails.controller.d.ts +2 -0
- package/dist/pipeline/stages/bake/ociBakeStage.d.ts +2 -0
- package/dist/pipeline/stages/destroyAsg/destroyAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/disableAsg/disableAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/findAmi/findAmiStage.d.ts +2 -0
- package/dist/pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage.d.ts +2 -0
- package/dist/pipeline/stages/resizeAsg/resizeAsgStage.d.ts +2 -0
- package/dist/pipeline/stages/scaleDownCluster/scaleDownClusterStage.d.ts +2 -0
- package/dist/pipeline/stages/shrinkCluster/shrinkClusterStage.d.ts +2 -0
- package/dist/securityGroup/configure/createSecurityGroup.controller.d.ts +2 -0
- package/dist/securityGroup/securityGroup.reader.d.ts +2 -0
- package/dist/securityGroup/securityGroup.transformer.d.ts +2 -0
- package/dist/serverGroup/configure/serverGroup.configure.module.d.ts +2 -0
- package/dist/serverGroup/configure/serverGroupCommandBuilder.service.d.ts +2 -0
- package/dist/serverGroup/configure/serverGroupConfiguration.service.d.ts +2 -0
- package/dist/serverGroup/configure/wizard/basicSettings/basicSettings.controller.d.ts +2 -0
- package/dist/serverGroup/configure/wizard/capacity/capacitySelector.component.d.ts +2 -0
- package/dist/serverGroup/configure/wizard/cloneServerGroup.controller.d.ts +2 -0
- package/dist/serverGroup/details/resize/resizeCapacity.component.d.ts +2 -0
- package/dist/serverGroup/details/resize/resizeServerGroup.controller.d.ts +2 -0
- package/dist/serverGroup/details/rollback/rollbackServerGroup.controller.d.ts +2 -0
- package/dist/serverGroup/details/serverGroupDetails.controller.d.ts +2 -0
- package/dist/serverGroup/serverGroup.transformer.d.ts +2 -0
- package/package.json +38 -0
- package/src/common/footer.component.html +7 -0
- package/src/common/footer.component.js +18 -0
- package/src/common/ocid/ocid.component.js +15 -0
- package/src/common/ocid/ocid.template.html +10 -0
- package/src/common/ocid/truncateOcid.filter.js +14 -0
- package/src/domain/IOracleLoadBalancer.ts +110 -0
- package/src/helpContents/oracleHelpContents.ts +52 -0
- package/src/image/image.reader.js +38 -0
- package/src/index.ts +1 -0
- package/src/instance/details/instance.details.controller.js +56 -0
- package/src/instance/details/instanceDetails.html +31 -0
- package/src/loadBalancer/configure/backendSets.html +67 -0
- package/src/loadBalancer/configure/certificates.html +63 -0
- package/src/loadBalancer/configure/createLoadBalancer.controller.spec.ts +201 -0
- package/src/loadBalancer/configure/createLoadBalancer.controller.ts +540 -0
- package/src/loadBalancer/configure/createLoadBalancer.html +25 -0
- package/src/loadBalancer/configure/createLoadBalancerProperties.html +167 -0
- package/src/loadBalancer/configure/editLoadBalancer.html +26 -0
- package/src/loadBalancer/configure/listeners.html +88 -0
- package/src/loadBalancer/details/loadBalancerDetail.controller.spec.ts +62 -0
- package/src/loadBalancer/details/loadBalancerDetail.controller.ts +163 -0
- package/src/loadBalancer/details/loadBalancerDetail.html +100 -0
- package/src/loadBalancer/loadBalancer.transformer.ts +144 -0
- package/src/oracle.module.ts +94 -0
- package/src/oracle.settings.ts +19 -0
- package/src/pipeline/disableAsg/disableAsgStage.html +11 -0
- package/src/pipeline/disableAsg/disableAsgStage.js +62 -0
- package/src/pipeline/disableAsg/disableAsgStepLabel.html +1 -0
- package/src/pipeline/stages/bake/bakeExecutionDetails.controller.js +38 -0
- package/src/pipeline/stages/bake/bakeExecutionDetails.html +52 -0
- package/src/pipeline/stages/bake/bakeStage.html +109 -0
- package/src/pipeline/stages/bake/ociBakeStage.js +147 -0
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.html +9 -0
- package/src/pipeline/stages/destroyAsg/destroyAsgStage.js +64 -0
- package/src/pipeline/stages/destroyAsg/destroyAsgStepLabel.html +1 -0
- package/src/pipeline/stages/disableAsg/disableAsgStage.html +11 -0
- package/src/pipeline/stages/disableAsg/disableAsgStage.js +63 -0
- package/src/pipeline/stages/disableAsg/disableAsgStepLabel.html +1 -0
- package/src/pipeline/stages/findAmi/findAmiStage.html +20 -0
- package/src/pipeline/stages/findAmi/findAmiStage.js +82 -0
- package/src/pipeline/stages/findImageFromTags/findImageFromTagsExecutionDetails.html +44 -0
- package/src/pipeline/stages/findImageFromTags/findImageFromTagsStage.html +11 -0
- package/src/pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage.js +36 -0
- package/src/pipeline/stages/resizeAsg/resizeAsgStage.html +89 -0
- package/src/pipeline/stages/resizeAsg/resizeAsgStage.js +101 -0
- package/src/pipeline/stages/resizeAsg/resizeAsgStepLabel.html +1 -0
- package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.html +35 -0
- package/src/pipeline/stages/scaleDownCluster/scaleDownClusterStage.js +75 -0
- package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.html +34 -0
- package/src/pipeline/stages/shrinkCluster/shrinkClusterStage.js +71 -0
- package/src/securityGroup/configure/createSecurityGroup.controller.js +19 -0
- package/src/securityGroup/configure/createSecurityGroup.html +19 -0
- package/src/securityGroup/securityGroup.reader.js +15 -0
- package/src/securityGroup/securityGroup.transformer.js +25 -0
- package/src/serverGroup/configure/serverGroup.configure.module.js +15 -0
- package/src/serverGroup/configure/serverGroupCommandBuilder.service.js +105 -0
- package/src/serverGroup/configure/serverGroupConfiguration.service.js +229 -0
- package/src/serverGroup/configure/wizard/advancedSettings/advancedSettings.html +13 -0
- package/src/serverGroup/configure/wizard/basicSettings/basicSettings.controller.js +35 -0
- package/src/serverGroup/configure/wizard/basicSettings/basicSettings.html +134 -0
- package/src/serverGroup/configure/wizard/capacity/capacity.html +7 -0
- package/src/serverGroup/configure/wizard/capacity/capacitySelector.component.html +13 -0
- package/src/serverGroup/configure/wizard/capacity/capacitySelector.component.js +17 -0
- package/src/serverGroup/configure/wizard/cloneServerGroup.controller.js +109 -0
- package/src/serverGroup/configure/wizard/instanceType/instanceType.html +29 -0
- package/src/serverGroup/configure/wizard/loadBalancers/loadBalancers.html +44 -0
- package/src/serverGroup/configure/wizard/network/networkSettings.html +15 -0
- package/src/serverGroup/configure/wizard/serverGroupWizard.html +40 -0
- package/src/serverGroup/configure/wizard/templateSelection/templateSelection.html +9 -0
- package/src/serverGroup/details/resize/resizeCapacity.component.html +36 -0
- package/src/serverGroup/details/resize/resizeCapacity.component.js +42 -0
- package/src/serverGroup/details/resize/resizeServerGroup.controller.js +62 -0
- package/src/serverGroup/details/resize/resizeServerGroup.html +33 -0
- package/src/serverGroup/details/rollback/rollbackServerGroup.controller.js +73 -0
- package/src/serverGroup/details/rollback/rollbackServerGroup.html +41 -0
- package/src/serverGroup/details/serverGroupDetails.controller.js +230 -0
- package/src/serverGroup/details/serverGroupDetails.html +94 -0
- package/src/serverGroup/serverGroup.transformer.js +29 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { module } from 'angular';
|
|
2
|
+
import { $q } from 'ngimport';
|
|
3
|
+
|
|
4
|
+
import type { Application } from '@spinnaker/core';
|
|
5
|
+
import type {
|
|
6
|
+
IOracleBackEndSet,
|
|
7
|
+
IOracleListener,
|
|
8
|
+
IOracleListenerCertificate,
|
|
9
|
+
IOracleListenerSSLConfiguration,
|
|
10
|
+
IOracleLoadBalancer,
|
|
11
|
+
IOracleLoadBalancerUpsertCommand,
|
|
12
|
+
} from '../domain/IOracleLoadBalancer';
|
|
13
|
+
import { LoadBalancingPolicy } from '../domain/IOracleLoadBalancer';
|
|
14
|
+
import { OracleProviderSettings } from '../oracle.settings';
|
|
15
|
+
import { OracleDefaultProviderSettings } from '../oracle.settings';
|
|
16
|
+
|
|
17
|
+
export class OracleLoadBalancerTransformer {
|
|
18
|
+
public normalizeLoadBalancer(loadBalancer: IOracleLoadBalancer): PromiseLike<IOracleLoadBalancer> {
|
|
19
|
+
/*loadBalancer.serverGroups.forEach(function(serverGroup) {
|
|
20
|
+
serverGroup.account = loadBalancer.account;
|
|
21
|
+
serverGroup.region = loadBalancer.region;
|
|
22
|
+
|
|
23
|
+
if (serverGroup.detachedInstances) {
|
|
24
|
+
serverGroup.detachedInstances = serverGroup.detachedInstances.map(function(instanceId) {
|
|
25
|
+
return { id: instanceId };
|
|
26
|
+
});
|
|
27
|
+
serverGroup.instances = serverGroup.instances.concat(serverGroup.detachedInstances);
|
|
28
|
+
} else {
|
|
29
|
+
serverGroup.detachedInstances = [];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var activeServerGroups = _.filter(loadBalancer.serverGroups, { isDisabled: false });
|
|
33
|
+
loadBalancer.provider = loadBalancer.type;
|
|
34
|
+
loadBalancer.instances = _.chain(activeServerGroups)
|
|
35
|
+
.map('instances')
|
|
36
|
+
.flatten()
|
|
37
|
+
.value();
|
|
38
|
+
loadBalancer.detachedInstances = _.chain(activeServerGroups)
|
|
39
|
+
.map('detachedInstances')
|
|
40
|
+
.flatten()
|
|
41
|
+
.value();*/
|
|
42
|
+
return $q.resolve(loadBalancer);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public convertLoadBalancerForEditing(loadBalancer: IOracleLoadBalancer): IOracleLoadBalancerUpsertCommand {
|
|
46
|
+
if (loadBalancer.listeners) {
|
|
47
|
+
Object.keys(loadBalancer.listeners).forEach((key) => {
|
|
48
|
+
const lis = loadBalancer.listeners[key];
|
|
49
|
+
lis.isSsl = !!lis.sslConfiguration; // use !! operator to get truthiness value
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const toEdit: IOracleLoadBalancerUpsertCommand = {
|
|
53
|
+
name: loadBalancer.name,
|
|
54
|
+
cloudProvider: loadBalancer.cloudProvider,
|
|
55
|
+
credentials: loadBalancer.account,
|
|
56
|
+
region: loadBalancer.region,
|
|
57
|
+
shape: loadBalancer.shape,
|
|
58
|
+
isPrivate: loadBalancer.isPrivate,
|
|
59
|
+
subnetIds: loadBalancer.subnets.map((subnet) => subnet.id),
|
|
60
|
+
certificates: loadBalancer.certificates,
|
|
61
|
+
listeners: loadBalancer.listeners,
|
|
62
|
+
hostnames: loadBalancer.hostnames,
|
|
63
|
+
backendSets: loadBalancer.backendSets,
|
|
64
|
+
freeformTags: loadBalancer.freeformTags,
|
|
65
|
+
loadBalancerType: loadBalancer.type,
|
|
66
|
+
securityGroups: loadBalancer.securityGroups,
|
|
67
|
+
vpcId: loadBalancer.vpcId,
|
|
68
|
+
subnetTypeMap: loadBalancer.subnetTypeMap,
|
|
69
|
+
};
|
|
70
|
+
return toEdit;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public constructNewLoadBalancerTemplate(application: Application): IOracleLoadBalancerUpsertCommand {
|
|
74
|
+
const defaultCredentials =
|
|
75
|
+
application.defaultCredentials.oracle ||
|
|
76
|
+
(OracleProviderSettings.defaults
|
|
77
|
+
? OracleProviderSettings.defaults.account
|
|
78
|
+
: OracleDefaultProviderSettings.defaults.account);
|
|
79
|
+
const defaultRegion =
|
|
80
|
+
application.defaultRegions.oracle ||
|
|
81
|
+
(OracleProviderSettings.defaults
|
|
82
|
+
? OracleProviderSettings.defaults.region
|
|
83
|
+
: OracleDefaultProviderSettings.defaults.region);
|
|
84
|
+
return {
|
|
85
|
+
name: undefined,
|
|
86
|
+
cloudProvider: 'oracle',
|
|
87
|
+
credentials: defaultCredentials,
|
|
88
|
+
region: defaultRegion,
|
|
89
|
+
shape: null,
|
|
90
|
+
isPrivate: false,
|
|
91
|
+
subnetIds: [],
|
|
92
|
+
listeners: {},
|
|
93
|
+
hostnames: [],
|
|
94
|
+
backendSets: {},
|
|
95
|
+
freeformTags: {},
|
|
96
|
+
loadBalancerType: null,
|
|
97
|
+
securityGroups: [],
|
|
98
|
+
vpcId: null,
|
|
99
|
+
subnetTypeMap: {},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
public constructNewListenerTemplate(): IOracleListener {
|
|
104
|
+
return {
|
|
105
|
+
name: 'HTTP_80',
|
|
106
|
+
port: 80,
|
|
107
|
+
protocol: 'HTTP',
|
|
108
|
+
defaultBackendSetName: undefined,
|
|
109
|
+
isSsl: false,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public constructNewBackendSetTemplate(name: string): IOracleBackEndSet {
|
|
114
|
+
return {
|
|
115
|
+
name: name,
|
|
116
|
+
policy: LoadBalancingPolicy.ROUND_ROBIN,
|
|
117
|
+
healthChecker: { protocol: 'HTTP', port: 80, urlPath: '/' },
|
|
118
|
+
backends: [],
|
|
119
|
+
isNew: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public constructNewSSLConfiguration(): IOracleListenerSSLConfiguration {
|
|
124
|
+
return {
|
|
125
|
+
certificateName: '',
|
|
126
|
+
verifyDepth: 0,
|
|
127
|
+
verifyPeerCertificates: false,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public constructNewCertificateTemplate(name: string): IOracleListenerCertificate {
|
|
132
|
+
return {
|
|
133
|
+
certificateName: name,
|
|
134
|
+
publicCertificate: undefined,
|
|
135
|
+
caCertificate: undefined,
|
|
136
|
+
privateKey: undefined,
|
|
137
|
+
passphrase: undefined,
|
|
138
|
+
isNew: true,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export const ORACLE_LOAD_BALANCER_TRANSFORMER = 'spinnaker.oracle.loadBalancer.transformer';
|
|
144
|
+
module(ORACLE_LOAD_BALANCER_TRANSFORMER, []).service('oracleLoadBalancerTransformer', OracleLoadBalancerTransformer);
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { module } from 'angular';
|
|
2
|
+
|
|
3
|
+
import { CloudProviderRegistry, DeploymentStrategyRegistry } from '@spinnaker/core';
|
|
4
|
+
|
|
5
|
+
import './helpContents/oracleHelpContents';
|
|
6
|
+
import { ORACLE_IMAGE_IMAGE_READER } from './image/image.reader';
|
|
7
|
+
import { ORACLE_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER } from './instance/details/instance.details.controller';
|
|
8
|
+
import { ORACLE_LOAD_BALANCER_CREATE_CONTROLLER } from './loadBalancer/configure/createLoadBalancer.controller';
|
|
9
|
+
import { ORACLE_LOAD_BALANCER_DETAIL_CONTROLLER } from './loadBalancer/details/loadBalancerDetail.controller';
|
|
10
|
+
import { ORACLE_LOAD_BALANCER_TRANSFORMER } from './loadBalancer/loadBalancer.transformer';
|
|
11
|
+
import { ORACLE_PIPELINE_STAGES_BAKE_OCIBAKESTAGE } from './pipeline/stages/bake/ociBakeStage';
|
|
12
|
+
import { ORACLE_PIPELINE_STAGES_DESTROYASG_DESTROYASGSTAGE } from './pipeline/stages/destroyAsg/destroyAsgStage';
|
|
13
|
+
import { ORACLE_PIPELINE_STAGES_DISABLEASG_DISABLEASGSTAGE } from './pipeline/stages/disableAsg/disableAsgStage';
|
|
14
|
+
import { ORACLE_PIPELINE_STAGES_FINDAMI_FINDAMISTAGE } from './pipeline/stages/findAmi/findAmiStage';
|
|
15
|
+
import { ORACLE_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ORACLEFINDIMAGEFROMTAGSSTAGE } from './pipeline/stages/findImageFromTags/oracleFindImageFromTagsStage';
|
|
16
|
+
import { ORACLE_PIPELINE_STAGES_RESIZEASG_RESIZEASGSTAGE } from './pipeline/stages/resizeAsg/resizeAsgStage';
|
|
17
|
+
import { ORACLE_PIPELINE_STAGES_SCALEDOWNCLUSTER_SCALEDOWNCLUSTERSTAGE } from './pipeline/stages/scaleDownCluster/scaleDownClusterStage';
|
|
18
|
+
import { ORACLE_PIPELINE_STAGES_SHRINKCLUSTER_SHRINKCLUSTERSTAGE } from './pipeline/stages/shrinkCluster/shrinkClusterStage';
|
|
19
|
+
import { ORACLE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUP_CONTROLLER } from './securityGroup/configure/createSecurityGroup.controller';
|
|
20
|
+
import { ORACLE_SECURITYGROUP_SECURITYGROUP_READER } from './securityGroup/securityGroup.reader';
|
|
21
|
+
import { ORACLE_SECURITYGROUP_SECURITYGROUP_TRANSFORMER } from './securityGroup/securityGroup.transformer';
|
|
22
|
+
import { ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUP_CONFIGURE_MODULE } from './serverGroup/configure/serverGroup.configure.module';
|
|
23
|
+
import { ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE } from './serverGroup/configure/serverGroupCommandBuilder.service';
|
|
24
|
+
import { ORACLE_SERVERGROUP_CONFIGURE_WIZARD_CLONESERVERGROUP_CONTROLLER } from './serverGroup/configure/wizard/cloneServerGroup.controller';
|
|
25
|
+
import { ORACLE_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_CONTROLLER } from './serverGroup/details/serverGroupDetails.controller';
|
|
26
|
+
import { ORACLE_SERVERGROUP_SERVERGROUP_TRANSFORMER } from './serverGroup/serverGroup.transformer';
|
|
27
|
+
|
|
28
|
+
export const ORACLE_MODULE = 'spinnaker.oracle';
|
|
29
|
+
module(ORACLE_MODULE, [
|
|
30
|
+
// Pipeline
|
|
31
|
+
ORACLE_PIPELINE_STAGES_BAKE_OCIBAKESTAGE,
|
|
32
|
+
ORACLE_PIPELINE_STAGES_DESTROYASG_DESTROYASGSTAGE,
|
|
33
|
+
ORACLE_PIPELINE_STAGES_DISABLEASG_DISABLEASGSTAGE,
|
|
34
|
+
ORACLE_PIPELINE_STAGES_FINDAMI_FINDAMISTAGE,
|
|
35
|
+
ORACLE_PIPELINE_STAGES_FINDIMAGEFROMTAGS_ORACLEFINDIMAGEFROMTAGSSTAGE,
|
|
36
|
+
ORACLE_PIPELINE_STAGES_RESIZEASG_RESIZEASGSTAGE,
|
|
37
|
+
ORACLE_PIPELINE_STAGES_SCALEDOWNCLUSTER_SCALEDOWNCLUSTERSTAGE,
|
|
38
|
+
ORACLE_PIPELINE_STAGES_SHRINKCLUSTER_SHRINKCLUSTERSTAGE,
|
|
39
|
+
|
|
40
|
+
// Load Balancers
|
|
41
|
+
ORACLE_LOAD_BALANCER_TRANSFORMER,
|
|
42
|
+
ORACLE_LOAD_BALANCER_DETAIL_CONTROLLER,
|
|
43
|
+
ORACLE_LOAD_BALANCER_CREATE_CONTROLLER,
|
|
44
|
+
|
|
45
|
+
// Server Groups
|
|
46
|
+
ORACLE_SERVERGROUP_SERVERGROUP_TRANSFORMER,
|
|
47
|
+
ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUP_CONFIGURE_MODULE,
|
|
48
|
+
ORACLE_SERVERGROUP_DETAILS_SERVERGROUPDETAILS_CONTROLLER,
|
|
49
|
+
ORACLE_SERVERGROUP_CONFIGURE_SERVERGROUPCOMMANDBUILDER_SERVICE,
|
|
50
|
+
ORACLE_SERVERGROUP_CONFIGURE_WIZARD_CLONESERVERGROUP_CONTROLLER,
|
|
51
|
+
// Images
|
|
52
|
+
ORACLE_IMAGE_IMAGE_READER,
|
|
53
|
+
// Instances
|
|
54
|
+
ORACLE_INSTANCE_DETAILS_INSTANCE_DETAILS_CONTROLLER,
|
|
55
|
+
// Firewalls
|
|
56
|
+
ORACLE_SECURITYGROUP_SECURITYGROUP_READER,
|
|
57
|
+
ORACLE_SECURITYGROUP_SECURITYGROUP_TRANSFORMER,
|
|
58
|
+
ORACLE_SECURITYGROUP_CONFIGURE_CREATESECURITYGROUP_CONTROLLER,
|
|
59
|
+
]).config(function () {
|
|
60
|
+
CloudProviderRegistry.registerProvider('oracle', {
|
|
61
|
+
name: 'Oracle',
|
|
62
|
+
image: {
|
|
63
|
+
reader: 'oracleImageReader',
|
|
64
|
+
},
|
|
65
|
+
loadBalancer: {
|
|
66
|
+
transformer: 'oracleLoadBalancerTransformer',
|
|
67
|
+
detailsTemplateUrl: require('./loadBalancer/details/loadBalancerDetail.html'),
|
|
68
|
+
detailsController: 'oracleLoadBalancerDetailCtrl',
|
|
69
|
+
createLoadBalancerTemplateUrl: require('./loadBalancer/configure/createLoadBalancer.html'),
|
|
70
|
+
createLoadBalancerController: 'oracleCreateLoadBalancerCtrl',
|
|
71
|
+
},
|
|
72
|
+
serverGroup: {
|
|
73
|
+
transformer: 'oracleServerGroupTransformer',
|
|
74
|
+
detailsTemplateUrl: require('./serverGroup/details/serverGroupDetails.html'),
|
|
75
|
+
detailsController: 'oracleServerGroupDetailsCtrl',
|
|
76
|
+
commandBuilder: 'oracleServerGroupCommandBuilder',
|
|
77
|
+
cloneServerGroupController: 'oracleCloneServerGroupCtrl',
|
|
78
|
+
cloneServerGroupTemplateUrl: require('./serverGroup/configure/wizard/serverGroupWizard.html'),
|
|
79
|
+
configurationService: 'oracleServerGroupConfigurationService',
|
|
80
|
+
},
|
|
81
|
+
instance: {
|
|
82
|
+
detailsController: 'oracleInstanceDetailsCtrl',
|
|
83
|
+
detailsTemplateUrl: require('./instance/details/instanceDetails.html'),
|
|
84
|
+
},
|
|
85
|
+
securityGroup: {
|
|
86
|
+
reader: 'oracleSecurityGroupReader',
|
|
87
|
+
transformer: 'oracleSecurityGroupTransformer',
|
|
88
|
+
createSecurityGroupTemplateUrl: require('./securityGroup/configure/createSecurityGroup.html'),
|
|
89
|
+
createSecurityGroupController: 'oracleCreateSecurityGroupCtrl',
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
DeploymentStrategyRegistry.registerProvider('oracle', []);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IProviderSettings } from '@spinnaker/core';
|
|
2
|
+
import { SETTINGS } from '@spinnaker/core';
|
|
3
|
+
|
|
4
|
+
export interface IOracleProviderSettings extends IProviderSettings {
|
|
5
|
+
defaults: {
|
|
6
|
+
account?: string;
|
|
7
|
+
region?: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const OracleProviderSettings: IOracleProviderSettings = (SETTINGS.providers
|
|
12
|
+
.oracle as IOracleProviderSettings) || { defaults: {} };
|
|
13
|
+
if (OracleProviderSettings) {
|
|
14
|
+
OracleProviderSettings.resetToOriginal = SETTINGS.resetProvider('oracle');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const OracleDefaultProviderSettings = {
|
|
18
|
+
defaults: { account: 'DEFAULT', bakeryRegions: 'us-phoenix-1', region: 'us-phoenix-1' },
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div ng-controller="oracleDisableAsgStageCtrl as disableAsgStageCtrl" class="form-horizontal">
|
|
2
|
+
<div ng-if="!pipeline.strategy">
|
|
3
|
+
<account-region-cluster-selector application="application" component="stage" accounts="accounts">
|
|
4
|
+
</account-region-cluster-selector>
|
|
5
|
+
</div>
|
|
6
|
+
<stage-config-field label="Target">
|
|
7
|
+
<target-select model="stage" options="targets"></target-select>
|
|
8
|
+
</stage-config-field>
|
|
9
|
+
<stage-platform-health-override application="application" stage="stage" platform-health-type="'Google'">
|
|
10
|
+
</stage-platform-health-override>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { module } from 'angular';
|
|
4
|
+
|
|
5
|
+
import { AccountService, Registry, StageConstants } from '@spinnaker/core';
|
|
6
|
+
|
|
7
|
+
export const ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE = 'spinnaker.oracle.pipeline.stage.disableAsgStage';
|
|
8
|
+
export const name = ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE; // for backwards compatibility
|
|
9
|
+
module(ORACLE_PIPELINE_DISABLEASG_DISABLEASGSTAGE, [])
|
|
10
|
+
.config(function () {
|
|
11
|
+
Registry.pipeline.registerStage({
|
|
12
|
+
provides: 'disableServerGroup',
|
|
13
|
+
cloudProvider: 'oracle',
|
|
14
|
+
templateUrl: require('./disableAsgStage.html'),
|
|
15
|
+
executionStepLabelUrl: require('./disableAsgStepLabel.html'),
|
|
16
|
+
validators: [
|
|
17
|
+
{
|
|
18
|
+
type: 'targetImpedance',
|
|
19
|
+
message:
|
|
20
|
+
'This pipeline will attempt to disable a server group without deploying a new version into the same cluster.',
|
|
21
|
+
},
|
|
22
|
+
{ type: 'requiredField', fieldName: 'cluster' },
|
|
23
|
+
{ type: 'requiredField', fieldName: 'target' },
|
|
24
|
+
{ type: 'requiredField', fieldName: 'regions' },
|
|
25
|
+
{ type: 'requiredField', fieldName: 'credentials', fieldLabel: 'account' },
|
|
26
|
+
],
|
|
27
|
+
});
|
|
28
|
+
})
|
|
29
|
+
.controller('oracleDisableAsgStageCtrl', [
|
|
30
|
+
'$scope',
|
|
31
|
+
function ($scope) {
|
|
32
|
+
const stage = $scope.stage;
|
|
33
|
+
|
|
34
|
+
const provider = 'oracle';
|
|
35
|
+
|
|
36
|
+
$scope.state = {
|
|
37
|
+
accounts: false,
|
|
38
|
+
regionsLoaded: false,
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
AccountService.listAccounts(provider).then(function (accounts) {
|
|
42
|
+
$scope.accounts = accounts;
|
|
43
|
+
$scope.state.accounts = true;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
$scope.targets = StageConstants.TARGET_LIST;
|
|
47
|
+
|
|
48
|
+
stage.regions = stage.regions || [];
|
|
49
|
+
stage.cloudProvider = provider;
|
|
50
|
+
|
|
51
|
+
if (!stage.credentials && $scope.application.defaultCredentials.oracle) {
|
|
52
|
+
stage.credentials = $scope.application.defaultCredentials.oracle;
|
|
53
|
+
}
|
|
54
|
+
if (!stage.regions.length && $scope.application.defaultRegions.gce) {
|
|
55
|
+
stage.regions.push($scope.application.defaultRegions.oracle);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!stage.target) {
|
|
59
|
+
stage.target = $scope.targets[0].val;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<span class="task-label"> Disable Server Group: {{step.context.serverGroupName}} ({{step.context.region}}) </span>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import UIROUTER_ANGULARJS from '@uirouter/angularjs';
|
|
4
|
+
import { module } from 'angular';
|
|
5
|
+
|
|
6
|
+
import { EXECUTION_DETAILS_SECTION_SERVICE, SETTINGS } from '@spinnaker/core';
|
|
7
|
+
|
|
8
|
+
export const ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER =
|
|
9
|
+
'spinnaker.oracle.pipeline.stage.bake.executionDetails.controller';
|
|
10
|
+
export const name = ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER; // for backwards compatibility
|
|
11
|
+
module(ORACLE_PIPELINE_STAGES_BAKE_BAKEEXECUTIONDETAILS_CONTROLLER, [
|
|
12
|
+
EXECUTION_DETAILS_SECTION_SERVICE,
|
|
13
|
+
UIROUTER_ANGULARJS,
|
|
14
|
+
]).controller('oracleBakeExecutionDetailsCtrl', [
|
|
15
|
+
'$log',
|
|
16
|
+
'$scope',
|
|
17
|
+
'$stateParams',
|
|
18
|
+
'executionDetailsSectionService',
|
|
19
|
+
'$interpolate',
|
|
20
|
+
function ($log, $scope, $stateParams, executionDetailsSectionService, $interpolate) {
|
|
21
|
+
$scope.configSections = ['bakeConfig', 'taskStatus'];
|
|
22
|
+
|
|
23
|
+
const initialized = () => {
|
|
24
|
+
$scope.detailsSection = $stateParams.details;
|
|
25
|
+
$scope.provider = $scope.stage.context.cloudProviderType || 'oracle';
|
|
26
|
+
$scope.roscoMode = SETTINGS.feature.roscoMode;
|
|
27
|
+
$scope.bakeryDetailUrl = $interpolate(
|
|
28
|
+
$scope.roscoMode && SETTINGS.roscoDetailUrl ? SETTINGS.roscoDetailUrl : SETTINGS.bakeryDetailUrl,
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const initialize = () => executionDetailsSectionService.synchronizeSection($scope.configSections, initialized);
|
|
33
|
+
|
|
34
|
+
initialize();
|
|
35
|
+
|
|
36
|
+
$scope.$on('$stateChangeSuccess', initialize);
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<div ng-controller="oracleBakeExecutionDetailsCtrl">
|
|
2
|
+
<execution-details-section-nav sections="configSections"></execution-details-section-nav>
|
|
3
|
+
<div class="step-section-details" ng-if="detailsSection === 'bakeConfig'">
|
|
4
|
+
<div class="row">
|
|
5
|
+
<div class="col-md-6">
|
|
6
|
+
<dl class="dl-narrow dl-horizontal">
|
|
7
|
+
<dt>Provider</dt>
|
|
8
|
+
<dd>oracle</dd>
|
|
9
|
+
<dt>Image Name</dt>
|
|
10
|
+
<dd>{{stage.context.amiName}}</dd>
|
|
11
|
+
<dt ng-if="stage.context.package">Package</dt>
|
|
12
|
+
<dd ng-if="stage.context.package">{{stage.context.package}}</dd>
|
|
13
|
+
<dt ng-if="stage.context.accountName">Account</dt>
|
|
14
|
+
<dd ng-if="stage.context.accountName">{{stage.context.accountName}}</dd>
|
|
15
|
+
</dl>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-md-6">
|
|
18
|
+
<dl class="dl-narrow dl-horizontal">
|
|
19
|
+
<dt>Base Image</dt>
|
|
20
|
+
<dd>{{stage.context.baseOs}}</dd>
|
|
21
|
+
<dt ng-if="roscoMode || execution.trigger.rebake || stage.context.rebake">Rebake</dt>
|
|
22
|
+
<dd ng-if="roscoMode || execution.trigger.rebake || stage.context.rebake">
|
|
23
|
+
{{execution.trigger.rebake || stage.context.rebake || false}}
|
|
24
|
+
</dd>
|
|
25
|
+
<dt ng-if="stage.context.templateFileName">Template</dt>
|
|
26
|
+
<dd ng-if="stage.context.templateFileName">{{stage.context.templateFileName}}</dd>
|
|
27
|
+
<dt ng-if="stage.context.varFileName">Var File</dt>
|
|
28
|
+
<dd ng-if="stage.context.varFileName">{{stage.context.varFileName}}</dd>
|
|
29
|
+
</dl>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<stage-failure-message stage="stage" message="stage.failureMessage"></stage-failure-message>
|
|
33
|
+
|
|
34
|
+
<div class="row" ng-if="stage.context.region && stage.context.status.resourceId">
|
|
35
|
+
<div class="col-md-12">
|
|
36
|
+
<div class="alert alert-{{stage.isFailed ? 'danger' : 'info'}}">
|
|
37
|
+
<div ng-if="stage.context.previouslyBaked">No changes detected; reused existing bake</div>
|
|
38
|
+
<div ng-if="stage.context.imageName">
|
|
39
|
+
<strong>Image:</strong>
|
|
40
|
+
<div select-on-dbl-click>{{stage.context.imageName}}</div>
|
|
41
|
+
</div>
|
|
42
|
+
<a target="_blank" href="{{ bakeryDetailUrl(stage) }}"> View Bakery Details </a>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="step-section-details" ng-if="detailsSection === 'taskStatus'">
|
|
48
|
+
<div class="row">
|
|
49
|
+
<execution-step-details item="stage"></execution-step-details>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<div ng-controller="oracleBakeStageCtrl as bakeStageCtrl">
|
|
2
|
+
<div ng-if="viewState.loading" class="horizontal center middle">
|
|
3
|
+
<loading-spinner size="'small'"></loading-spinner>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<stage-config-field label="Oracle Account" help-key="oracle.pipeline.config.bake.account_name">
|
|
7
|
+
<account-select-field
|
|
8
|
+
component="stage"
|
|
9
|
+
field="accountName"
|
|
10
|
+
accounts="accounts"
|
|
11
|
+
on-change="bakeStageCtrl.accountUpdated()"
|
|
12
|
+
provider="'oracle'"
|
|
13
|
+
>
|
|
14
|
+
</account-select-field>
|
|
15
|
+
</stage-config-field>
|
|
16
|
+
|
|
17
|
+
<stage-config-field label="Region" help-key="oracle.pipeline.config.bake.regions">
|
|
18
|
+
<input type="text" class="form-control input-sm" ng-readonly="true" ng-model="stage.region" />
|
|
19
|
+
</stage-config-field>
|
|
20
|
+
|
|
21
|
+
<stage-config-field label="Base Image" , help-key="oracle.pipeline.config.bake.baseOsOption">
|
|
22
|
+
<div class="radio" ng-repeat="baseImage in baseOsOptions.baseImages">
|
|
23
|
+
<label>
|
|
24
|
+
<input type="radio" ng-model="stage.baseOs" ng-value="baseImage.id" />
|
|
25
|
+
{{bakeStageCtrl.getBaseOsDescription(baseImage)}}
|
|
26
|
+
<help-field content="{{baseImage.detailedDescription}}"></help-field>
|
|
27
|
+
</label>
|
|
28
|
+
</div>
|
|
29
|
+
</stage-config-field>
|
|
30
|
+
|
|
31
|
+
<stage-config-field label="Image Name" help-key="oracle.pipeline.config.bake.image_name">
|
|
32
|
+
<input type="text" class="form-control input-sm" ng-model="stage.amiName" />
|
|
33
|
+
</stage-config-field>
|
|
34
|
+
|
|
35
|
+
<stage-config-field label="Package" help-key="oracle.pipeline.config.bake.package">
|
|
36
|
+
<input type="text" class="form-control input-sm" ng-model="stage.package" />
|
|
37
|
+
</stage-config-field>
|
|
38
|
+
|
|
39
|
+
<stage-config-field label="Rebake" help-key="execution.forceRebake">
|
|
40
|
+
<div class="checkbox" style="margin-bottom: 0">
|
|
41
|
+
<label>
|
|
42
|
+
<input type="checkbox" ng-model="stage.rebake" />
|
|
43
|
+
Rebake image without regard to the status of any existing bake
|
|
44
|
+
</label>
|
|
45
|
+
</div>
|
|
46
|
+
</stage-config-field>
|
|
47
|
+
<div class="form-group">
|
|
48
|
+
<div class="col-md-9 col-md-offset-1">
|
|
49
|
+
<div class="checkbox">
|
|
50
|
+
<label>
|
|
51
|
+
<input type="checkbox" ng-model="stage.showAdvancedOptions" />
|
|
52
|
+
<strong>Show Advanced Options</strong>
|
|
53
|
+
</label>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div ng-class="{collapse: stage.showAdvancedOptions !== true, 'collapse.in': stage.showAdvancedOptions === true}">
|
|
58
|
+
<stage-config-field label="Template File Name" help-key="pipeline.config.bake.templateFileName">
|
|
59
|
+
<input type="text" class="form-control input-sm" ng-model="stage.templateFileName" />
|
|
60
|
+
</stage-config-field>
|
|
61
|
+
<stage-config-field label="Var File Name" help-key="pipeline.config.bake.varFileName">
|
|
62
|
+
<input type="text" class="form-control input-sm" ng-model="stage.varFileName" />
|
|
63
|
+
</stage-config-field>
|
|
64
|
+
<stage-config-field label="Extended Attributes" help-key="pipeline.config.bake.extendedAttributes">
|
|
65
|
+
<table class="table table-condensed packed">
|
|
66
|
+
<thead>
|
|
67
|
+
<tr>
|
|
68
|
+
<th style="width: 40%">Key</th>
|
|
69
|
+
<th style="width: 60%">Value</th>
|
|
70
|
+
<th class="text-right">Actions</th>
|
|
71
|
+
</tr>
|
|
72
|
+
</thead>
|
|
73
|
+
<tbody>
|
|
74
|
+
<tr ng-repeat="(key,value) in stage.extendedAttributes">
|
|
75
|
+
<td>
|
|
76
|
+
<strong class="small">{{key}}</strong>
|
|
77
|
+
</td>
|
|
78
|
+
<td>
|
|
79
|
+
<input
|
|
80
|
+
type="text"
|
|
81
|
+
ng-model="stage.extendedAttributes[key]"
|
|
82
|
+
value="{{value}}"
|
|
83
|
+
class="form-control input-sm"
|
|
84
|
+
/>
|
|
85
|
+
</td>
|
|
86
|
+
<td class="text-right">
|
|
87
|
+
<a class="small" href ng-click="bakeStageCtrl.removeExtendedAttribute(key)">Remove</a>
|
|
88
|
+
</td>
|
|
89
|
+
</tr>
|
|
90
|
+
</tbody>
|
|
91
|
+
<tfoot>
|
|
92
|
+
<tr>
|
|
93
|
+
<td colspan="7">
|
|
94
|
+
<button class="btn btn-block btn-sm add-new" ng-click="bakeStageCtrl.addExtendedAttribute()">
|
|
95
|
+
<span class="glyphicon glyphicon-plus-sign"></span> Add Extended Attribute
|
|
96
|
+
</button>
|
|
97
|
+
</td>
|
|
98
|
+
</tr>
|
|
99
|
+
</tfoot>
|
|
100
|
+
</table>
|
|
101
|
+
</stage-config-field>
|
|
102
|
+
<stage-config-field label="Upgrade" help-key="oracle.pipeline.config.bake.upgrade">
|
|
103
|
+
<label class="checkbox-inline">
|
|
104
|
+
<input type="checkbox" ng-model="stage.upgrade" />
|
|
105
|
+
Perform a package manager upgrade before proceeding with the package installation
|
|
106
|
+
</label>
|
|
107
|
+
</stage-config-field>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|