Skip to content

Feature/dynamic cluster #199

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 76 commits into from
Apr 17, 2018
Merged

Feature/dynamic cluster #199

merged 76 commits into from
Apr 17, 2018

Conversation

alai8
Copy link
Member

@alai8 alai8 commented Apr 12, 2018

  • Add support for WebLogic dynamic clusters
  • Introduce clusterType parameter (DYNAMIC or CONFIGURED) to create-weblogic-domain-inputs.yaml
  • No longer require pre-creating server directory and files for each managed server in domain creation time.
  • Moved startServer.sh, start-server.py, stopServer.sh, and stop-server.py to ConfigMap

alai8 added 30 commits February 13, 2018 10:23
…for admin server, removed per server nodemgr_home, add dynamic cluster size verification in RestBackendImpl
…kubernetes-operator into feature/dynamic-cluster
…tartup script, no longer create machines for dynamic servers in create domain job
… with managedServerStartCount smaller than managedServerCount
… clusters. use named edit session in start-server.py when updating NodeMangerMBean
@alai8 alai8 requested a review from rjeberhard April 12, 2018 17:59
if (nodePort != null) {
servicePort.setNodePort(nodePort);
}
ports.add(servicePort);

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you exposing the node manager port here if we didn't before?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, this was leftover code when we were trying to address the WLDF delay issue by exposing nm port that I forgot to remove.

@@ -16,16 +16,77 @@
import java.util.Map;

/**
* Contains configuration for a WebLogid Domain
* Contains a snapsot of configuration for a WebLogic Domain
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

snapshot

* @return true if the request to update the cluster size is successful, false if it was not successful within the
* time period, or the cluster is not a dynamic cluster
*/
public boolean updateDynamicClusterSize(final WlsClusterConfig wlsClusterConfig,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Who calls this? We should discuss... Other places use a pattern where this is wrapped in a Step which suspends until the asynchronous activity finishes. This allows for timeout and retry, etc.

Copy link
Member Author

@alai8 alai8 Apr 16, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no usages. It was added some time ago when we thought the RestBackEndImpl class may need to adjust the dynamic cluster size. I will remove this method.

@alai8 alai8 requested a review from lennyphan April 16, 2018 15:50
@alai8 alai8 removed the request for review from lennyphan April 16, 2018 16:13
set('ServerTemplate', st1)
set('ServerNamePrefix', "%MANAGED_SERVER_NAME_BASE%")
set('DynamicClusterSize', number_of_ms)
set('MaxDynamicClusterSize', 800)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove commented out set calls. Should we remove setting MaxDynamicClusterSize?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! I missed that. What's the implication of MaxDynamicClusterSize vs. DynamicClusterSize? Adding @tbarnes-us.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In effect, D-C-S sets the number of ms that show up in the bean tree (virtual config beans of some kind), which in effect designates the servers that can be booted. For example, when DCS is 10, you will see 10 managed servers in the config tree on the console even when they aren't booted. It also can do 'double duty' of letting the wlst-scaling/external frameworks know the number of servers you'd like to be running. Max DCS, as far as I know, simply prevents DCS from being configured higher than the specified value - I personally don't think it has much utility. JMS and JTA usually require that DCS never be lowered during a scale down (instead just shutdown the servers you don't want) -- this lets these services iterate over the aforementioned 'virtual' beans to locate data that may be trapped in servers that are no longer going to be booted.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is being replaced with set('MaxDynamicClusterSize', number_of_ms). Also will be adding some validation logic to compare replicas and max dynamic cluster size in WlsClusterConfig class and make sure the max dynamic cluster size is honored and we won't scale above it.

@@ -633,12 +639,23 @@ protected V1Pod computeManagedPodConfig(TuningParameters configMapHelper, Packet
V1ContainerPort containerPort = new V1ContainerPort();
containerPort.setContainerPort(scan.getListenPort());
containerPort.setProtocol("TCP");
// containerPort.setName("weblogic"); // commented out as we are not exposing node manager port
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cleanup commented out section for exposing NM port


boolean result = false;
// Create machine(s)
// Commented out as we are not configuring machines for servers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove since we're not creating machines implicitly anymore?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. Will also be removing some method arguments and utility class related to machine creation.

@alai8 alai8 requested a review from lennyphan April 16, 2018 17:00
@rjeberhard rjeberhard merged commit 9b90e13 into develop Apr 17, 2018
@rjeberhard rjeberhard deleted the feature/dynamic-cluster branch April 17, 2018 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants